自定义uitableviewcell的几种运用方法

来源:互联网 发布:手机淘宝爱逛街入口 编辑:程序博客网 时间:2024/05/16 14:18

1.利用xib

设计好自定义的cell并且连接好控件后  有两种方法引用我们自己的cell

 

方法1:

复制代码
 1 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 2 { 3     static NSString *cellIdentifier=@"name"; 4     BOOL nibsRegistered=NO; 5     if (!nibsRegistered) { 6         UINib *nib=[UINib nibWithNibName:@"MyCell" bundle:nil]; 7        [tableView registerNib:nib forCellReuseIdentifier:cellIdentifier]; 8         nibsRegistered=YES; 9     }10     MyCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];11 //cell 上的元素初始化代码12 13 return cell;14 }
复制代码
 UINib *nib=[UINib nibWithNibName:@"MyCell" bundle:nil];[tableView registerNib:nib forCellReuseIdentifier:cellIdentifier];
这两句代码是引用我们自己定义的cell的关键 首先读取我们自己定义的cell的nib文件 再在tableView中注册 此时 我们定义的cell便加入
到了tableView的可重用队列当中了
MyCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
这句代码从中取出一个事例  然后初始化 并返回给tableView显示


方法2:
复制代码
 1 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 2 { 3     static NSString *tableCellIdentifier = @"name"; 4     MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:tableCellIdentifier]; 5      6     if(cell == nil){ 7         NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"MyCell" owner:self options:nil]; 8         for(id oneObject in nib){ 9             if([oneObject isKindOfClass:[MyCell class]]){10                 cell = (MyCell *)oneObject;11             }12         }13     }14     //cell初始化。。。15     16     return cell;17 }
复制代码


2.利用storyboard自定义cell
利用storyboard自定义cell比较简单 较xib 方法 少了读取xib文件的一步

在storyboard中拖出一个tableViewController后 拖上去一个cell 然后自己设计cell 最后一定要填上identifier
此时cell已经磨人添加到了tableview的 重用队列中了
引用的时候只需
复制代码
1 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath2 {3     //这个是在storyboard中设置的identifier4     static NSString *tableCellIdentifier = @"name";5     MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:tableCellIdentifier];6     //cell初始化7     return cell;8 }
复制代码

 

 

纯属自己的一些理解  写下来方便自己记忆   如有错误指出 希望大家讨论指正

转载请著名出处http://www.cnblogs.com/bucengyongyou/archive/2012/09/02/2667330.html

0 0
原创粉丝点击