26.iOS中最重要的视图UITableView表视图第一章

原创 2015年11月21日 11:35:50

表视图 UITableView,iOS中最重要的视图,随处可⻅。

表视图通常⽤来管理⼀组具有相同数据结构的数据。

UITableView继承⾃UIScrollView,所以可以滚动

表视图的每⼀条数据都是显⽰在UITableViewCell对象中

表视图可以分区显⽰数据,每个分区称为⼀个section,每⼀⾏称为row,编号都是从0开始

这里写图片描述

=================================

先遵守协议

@interface RootViewController ()< UITableViewDelegate,UITableViewDataSource>

=================================

为了方便管理创建方法创建表示图

-(void)addTableView

{

初始化

UITableView *tableView = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds style:(UITableViewStylePlain)];

设置代理 和 数据源代理

tableView.delegate = self;

tableView.dataSource = self;

1. 设置整个tableView的表头和表尾

步骤1:创建两个View
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0,0,0, 50)];
headerView.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];
UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 100)];
footerView.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];
步骤2:设置表头和标尾
// 设置表头
tableView.tableHeaderView = headerView;
[headerView release];
// 设置表尾
tableView.tableFooterView = footerView;
[footerView release];
// 显示视图
[self.view addSubview:tableView];
// 释放
[tableView release];

}
============================

协议中(必须实现)设置每个分区有多少行

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 5;
}
=================================

协议中(必须实现)的方法。这个方法是用来设置你的TableView中每一行显示的内容和格式的。indexPath 用来指示当前单元格,它的row方法可以获得这个单元格的行号,section方法可以获得这个单元格所处的区域号

-(UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
/*
UITableViewCell重用机制
需要重用集合 作用:把滑出屏幕的cell(完全消失在屏幕上时)放入这个重用集合(备用)
当屏幕下方 需要新的cell进行展示的时候 开始重用方式
首先 系统会先去重用集合中找 看有没有cell 可以重新使用 如果有 就直接使用 如果没有 就创建一个出来进行使用

*/

去重用集合中 按标识符 寻找对应的cell

static NSString *identifier = @”Mycell”;

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

if (cell == nil) {

去创建新的cell

释放cell的时候 只有创建出来才需要去释放 从集合中取出来 不用释放

cell = [[[UITableViewCell alloc] initWithStyle:(UITableViewCellStyleSubtitle) reuseIdentifier:identifier]autorelease];

}

赋值cell上的控件(从集合中取出来的 也需要赋值)

就一个分区 分区 indexpath.section 始终是0

row 是每一个分区的第几行

设置属性

cell.textLabel.text = @”哈哈”;

这里写图片描述

return cell;

}
=================================

设置分区数

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

return 3;

}

==================================

设置每个分区的表头 和 表尾

1.设置表头

-(UIView )tableView:(UITableView )tableView viewForHeaderInSection:(NSInteger)section

{

UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 20)];

headerView.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];

return [headerView autorelease];

}

2.设置表尾

-(UIView )tableView:(UITableView )tableView viewForFooterInSection:(NSInteger)section

{

UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 150)];

footerView.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];

return [footerView autorelease];

}

设置分区表头 和 表尾 的高度

3. 设置分区表头 的高度

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

{

return 50;

}

4.设置分区表尾 的高度

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

{

return 150;

}

==================================

设置的是 每一个分区的每一行的高度

-(CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath

{

return 80;

}

================================

设置分区表头 和表尾 的 标题

设置分区表头 的 标题

- (NSString )tableView:(UITableView )tableView titleForHeaderInSection:(NSInteger)section

{

if (section == 0) {

return @”a”;

}else if (section == 1){

return @”b”;

}else{

return @”c”;

}

}

================================

设置tableView右边 标题小按钮

- (NSArray )sectionIndexTitlesForTableView:(UITableView )tableView

{

return @[@”a”,@”b”,@”c”];

}

=================================

点击跳转的方法

- (void)tableView:(UITableView )tableView didUnhighlightRowAtIndexPath:(NSIndexPath )indexPath

{

NSLog(@”123123”);

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS个人整理18-UITableView表视图

一、UITableView 二、UITableViewController
  • u010330109
  • u010330109
  • 2016年02月26日 11:39
  • 924

27.iOS中最重要的视图UITableView表视图第二章

添加了一个数据源Class25ContactList.plist================================创建表视图-(void)addTableView{UITableView...
  • mn704058053
  • mn704058053
  • 2015年11月21日 14:00
  • 139

swift UITableView 表视图

// //  AppDelegate.swift //  swiftTableView // //  Created by baojia on 14-6-30. //  ...
  • zhang_biao_1991
  • zhang_biao_1991
  • 2014年06月30日 18:00
  • 4063

.NET中各命名空间及作用

转自:http://blog.csdn.net/sscrazy/archive/2010/10/13/5938798.aspx命名空间          描述Microsoft.CSharp     ...
  • kevin6216
  • kevin6216
  • 2011年06月28日 16:41
  • 1301

iOS开发之高级视图—— UITableView(五)表视图索引

UITableView展示的数据如果非常多,我们通常需要根据各个分区产生一个索引快速定位到需要的分区。本例子需要创建一个plist,内容如下:        teams.plist       ...
  • panjican
  • panjican
  • 2016年05月25日 17:10
  • 708

iOS UITableView 在视图出现时滚动到底部

通讯录相关的iOS APP在显示信息列表时,通常希望打开信息列表后,直接滚动到用于显示信息内容的UITableView底部。 通过在视图控制器的 - (void)viewWillAppear:...
  • LVXIANGAN
  • LVXIANGAN
  • 2015年10月31日 12:09
  • 1954

struts 中常用的几个类

ActionMapping类将特定请求映射到特定Action的相关信息存储在 ActionMapping中,ActionServelt将ActionMapping传送到Action类的execute(...
  • gaojie0802
  • gaojie0802
  • 2007年07月13日 08:52
  • 499

Oracle 分区表相关视图

小白今天遇到一个oracle分区相关问题,在csdn上搜了半小时,总算将问题搞定,现在将相关视图整理一下,下次就方便啦。   显示当前用户可访问的所有分区表信息﹕ ALL_PART_TABLES   ...
  • lansesl2008
  • lansesl2008
  • 2013年12月13日 10:55
  • 4734

生命中最重要的两个日子,一个是你出生,一个是你发现自己为什么而生

The two most important days in your life are the day you are born, and the day you find out why. ...
  • bigheadsheep
  • bigheadsheep
  • 2014年05月16日 08:57
  • 3025

数据库视图和表的区别

区别: 1、视图是已经编译好的sql语句。而表不是 2、视图没有实际的物理记录。而表有。 3、表是内容,视图是窗口 4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存...
  • DennisRuan
  • DennisRuan
  • 2016年04月22日 14:23
  • 2686
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:26.iOS中最重要的视图UITableView表视图第一章
举报原因:
原因补充:

(最多只允许输入30个字)