详解iPhone Tableview分批显示数据

移动开发 iOS
iPhone Tableview分批显示数据是本文要介绍的内容,主要讲解的是数据的显示。iPhone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据。

iPhone Tableview分批显示数据是本文要介绍的内容,主要讲解的是数据的显示。iPhone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据。基本上就是数据源里先只放10条, 点击***一个cell时, 添加更多的数据数据源中. 比如:

数据源是个array:

  1. NSMutableArray *items; 

ViewController的这个方法返回数据条数: +1是为了显示"加载更多"的那个cell

  1. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {  
  2.         int count = [items count];  
  3.     return  count + 1;  

这个方法定制cell的显示, 尤其是"加载更多"的那个cell:

  1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {  
  2.     if([indexPath row] == ([items count])) {  
  3.         //创建loadMoreCell  
  4.         return loadMoreCell;  
  5.     }  
  6.     //create your data cell  
  7.     return cell;  

还要处理"加载更多"的那个cell的选择事件,触发一个方法来加载更多数据到列表

  1. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {  
  2.       
  3.     if (indexPath.row == [items count]) {  
  4.         [loadMoreCell setDisplayText:@"loading more ..."];  
  5.         [loadMoreCell setAnimating:YES];  
  6.         [self performSelectorInBackground:@selector(loadMore) withObject:nil];  
  7.         //[loadMoreCell setHighlighted:NO];  
  8.         [tableView deselectRowAtIndexPath:indexPath animated:YES];  
  9.         return;  
  10.     }  
  11.     //其他cell的事件  

加载数据的方法:

  1. -(void)loadMore  
  2. {  
  3.     NSMutableArray *more;   
  4.         //加载你的数据  
  5.     [self performSelectorOnMainThread:@selector(appendTableWith:) withObject:more waitUntilDone:NO];  

添加数据到列表:

  1. -(void) appendTableWith:(NSMutableArray *)data  
  2. {  
  3.     for (int i=0;i<[data count];i++) {  
  4.         [items addObject:[data objectAtIndex:i]];  
  5.     }  
  6.     NSMutableArray *insertIndexPaths = [NSMutableArray arrayWithCapacity:10];  
  7.     for (int ind = 0; ind < [data count]; ind++) {  
  8.         NSIndexPath    *newPath =  [NSIndexPath indexPathForRow:[items indexOfObject:[data objectAtIndex:ind]] inSection:0];   
  9.         [insertIndexPaths addObject:newPath];  
  10.     }  
  11.     [self.tableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationFade];  
  12. }  

小结:详解iPhone Tableview分批显示数据的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-29 10:51:41

iPhone 全屏显示 视图

2011-08-08 15:48:13

iPhone TableView 背景

2011-08-09 10:05:57

TableView服务器图片

2011-07-20 15:49:40

iPhone 数据 进度窗

2011-08-17 15:19:38

iPhone应用数据

2011-06-03 10:19:59

iphone Objective-

2011-07-27 10:16:41

iPhone SQLite 数据库

2011-07-26 18:11:56

iPhone Sqlite 数据库

2011-07-27 15:47:09

iPhone Simulator 文件

2011-08-02 17:27:06

iPhone应用 剪切技巧

2011-07-20 15:20:14

IPhone AVAudioRec

2011-07-08 17:45:19

iPhone 文档

2011-08-02 16:28:40

iPhone Web开发 事件

2011-08-10 17:37:00

iPhoneASIHTTPRequ

2011-07-08 15:08:16

iPhone 图片

2011-08-22 12:01:38

iPhone开发文件

2011-08-15 11:37:20

iPhone开发Mask

2011-07-26 09:53:53

iPhone AsyncSocke 网络

2011-08-10 11:12:33

iPhone文件

2011-08-01 09:50:46

iPhone 获取对象 UIView
点赞
收藏

51CTO技术栈公众号