总结: UITableViewDelegate
  row:     heightForRow
  header:    heightForHeader
         viewForHeader
         titleForHeader (viewForHeader 相冲突)
  

  title:     heightForTitle
         viewForTitle
         titleForTitle (viewForTitle 相冲突)
 
 总结: UITableViewDatasource
  numberOfRowsInSection      (required)
      cellForRow          (required)

UITableView应用(一)UITableViewDelegate方法总结

 
1.定义每个UITableView中的cell的行高
 

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

{

// indexPath.section,根据分组进行更精确的配置

return 90.0;

}

 
2.设置UITableView每个分组的Header的Title
 

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

return [_arrayType objectAtIndex:section];

}

 
3.设置UITableView分组Header的高
 

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

return 30.0;

}

 
4.设置UITableView自定义的Header
 

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

// 自定义的Header

ViewForCellHeader *headerView=[[[ViewForCellHeader alloc] init] autorelease];

headerView.strSectionName=[_arrayType objectAtIndex:section];

return [headerView view];

}

 

注意:2与4是互斥的。

 
同理原理,我们分别也对Footer进行设置。
 
5.设置UITableView每个分组的Footer的Title
 

- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{

return [_arrayType objectAtIndex:section];

}

 
6.设置UITableView分组Footer的高
 

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

// indexPath.section,根据分组进行更精确的配置

return 30.0;

}

 
7.设置UITableView自定义的Footer
 

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

// 自定义的Footer

ViewForCellHeader *headerView=[[[ViewForCellHeader alloc] init] autorelease];

headerView.strSectionName=[_arrayType objectAtIndex:section];

return [headerView view];

}

 
8.设置UITableView每个分组的Footer的Title
 

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

return [_arrayType objectAtIndex:section];

}

UITableView应用(二)UITableViewDataSource 方法总结

NSMutableArray *_arrayType;// 分组

 

1.返回分组数

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

return [_arrayType count];

}

2.根据分组,返回每个分组的行数
 

- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{

NSString *curType=[_arrayType objectAtIndex:section];

return [[_dictData objectForKey:curType] count];

}

 
3.根据分组,返回每个cell
 

- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath
*)indexPath{

NSUInteger section = [indexPath section];

NSUInteger row = [indexPath row];

NSString *key=[_arrayType objectAtIndex:section];

NSMutableArray *arrValues=[_dictData objectForKey:key];

static NSString *CellIdentifier = @"WTVChannelCell";

// 自定义cell

WTVChannelCell *cell = (WTVChannelCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil){

cell = [[[WTVChannelCell alloc] initWithStyle:UITableViewCellSelectionStyleGray
reuseIdentifier:CellIdentifier]
autorelease];

NSArray *array =
[[NSBundle mainBundle] loadNibNamed:@"WTVChannelCell" owner:nil
options:nil];

cell =
[array objectAtIndex:0];

}

cell.dictChannelData=[arrValues objectAtIndex:row];

[cell refreshCellData];

return cell;

}

UITableView 委托方法总结的更多相关文章

  1. (转载)IOS中UIScrollView的属性和委托方法

    http://www.jizhishusheng.com/?p=453   ---- 以下内容来自 UIScrollView 类负责所有基于 UIKit 的滚动操作一.创建 1. CGRect bou ...

  2. UITableView表格视图、UITableView代理方法及应用

    一.基本知识点 UITableView表格视图,是一个可以滚动的界面(理解为垂直滚动的UIScrollView),可展示多行数据,没有行数的限制,只能有一列. 使用UITableView: 1.展示信 ...

  3. 事件、委托、委托方法的总结(使用EventHandler<>)

    在C#中,定义事件.委托.委托方法可以使用类库内的EventHandler泛型委托来定义事件.并根据该泛型委托定义实现方法: 同样您也可以自定义委托 来定义事件以及 根据自定义的委托来定义实现事件的方 ...

  4. .NET自带泛型委托方法Func、Action和Predicate

    Func.Action和Predicate是.NET自带的3个泛型委托方法,三个方法的区别其实并不大,要强行给混着用也是可以的,但是我们是有追求的人,把道理讲清楚总是好的. 一.Func是有返回值的方 ...

  5. 匿名委托(方法) 以 ThreadStart 为例

    Hello Tec.   匿名委托(方法) 以 ThreadStart 为例 REF:http://baike.baidu.com/view/2761370.htm?fr=aladdin   不使用匿 ...

  6. IOS UITableview代理方法总结

    tableview的datasource代理 @required的两个数据源方法 1.返回每个 session 中 cell 的个数 - (NSInteger)tableView:(UITableVi ...

  7. 两种局部刷新UITableView的方法的使用条件

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ //1.取消选 ...

  8. 【转】iOS UITableView的方法解析

    原文网址:http://www.cnblogs.com/wfwenchao/articles/3718742.html - (void)viewDidLoad { [super viewDidLoad ...

  9. jQuery事件委托方法 bind live delegate on

    1.bind    jquery 1.3之前 定义和用法:主要用于给选择到的元素上绑定特定事件类型的监听函数 语法:  bind(type,[data],function(e)); 特点: a.适合页 ...

随机推荐

  1. redis学习笔记——(2)

    4.Redis中的string类型 String类型是最简单的类型,一个Key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比如jpg图片或者序列化的对 ...

  2. 编写高质量代码改善C#程序的157个建议[动态数组、循环遍历、对象集合初始化]

    前言   软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类.不管是数组还是集合类,它们都有各自的优缺点.如何使用好集合是我们在开发过程中必须掌握的技巧.不要小看这些技巧,一旦在开 ...

  3. http状态码介绍

    基本涵盖了所有问题HTTP 400 – 请求无效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁止访问资源HT ...

  4. 小心as"陷阱"(c#)

    有一种情况,使用as编译时没错,运行时也没错,但是结果错了. object a=1; string b=a as String; 由于a是objecy类型,是引用类型,所以可以用as转换,但是实际上b ...

  5. zabbix修改密码

    在我们刚刚安装好zabbix之后我们的管理用户是 Admin,密码是zabbix 所以我们肯定是要更改密码的,这个方法也适用于我们忘记管理员密码 首先我们登录mysql数据库 这里有一个zabbix库 ...

  6. 【codevs 1296】营业额统计 水~~

    今天下午先写一个Splay水题来复习一下Splay模板.是不是有点太水了做这种水题我有点良心不安. 可笑的是一开始我竟然WA了一组,看来是我低估水题的数据范围了,我是空节点直接返回inf或-inf,明 ...

  7. ios学习笔记

    1.对于autorelease的理解 Each thread in a Cocoa application maintains its own stack of autorelease pool bl ...

  8. Hibernate中一级缓存和二级缓存使用详解

    一.一级缓存二级缓存的概念解释 (1)一级缓存就是Session级别的缓存,一个Session做了一个查询操作,它会把这个操作的结果放在一级缓存中,如果短时间内这个 session(一定要同一个ses ...

  9. shell 命令遇到的一些问题

    1.  command not found 一般都是未安装,需要root 权限去安装服务,就可正常使用.比如rz, sz, crontab, sendemail, lftp等 2. rz 传输失败,输 ...

  10. groovy–运算符重载

    Groovy支持运算符重载,各种运算符被映射到普通的java对象的方法调用,这就使得开发者可以利用运算符重载的优势来编写自己的Java或者groovy对象. 下面的表格描述了groovy中的操作符所映 ...