zoukankan      html  css  js  c++  java
  • 详解iPhone Tableview分批显示数据

    iPhone Tableview分批显示数据是本文要介绍的内容,主要讲解的是数据的显示。iPhone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据。基本上就是数据源里先只放10条, 点击最后一个cell时, 添加更多的数据到数据源中. 比如:
    数据源是个array:
    NSMutableArray *items; 
    ViewController的这个方法返回数据条数: +1是为了显示"加载更多"的那个cell
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {  
            int count = [items count];  
        return  count + 1;  
    这个方法定制cell的显示, 尤其是"加载更多"的那个cell:
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {  
        if([indexPath row] == ([items count])) {  
            //创建loadMoreCell  
            return loadMoreCell;  
        }  
        //create your data cell  
        return cell;  
    还要处理"加载更多"的那个cell的选择事件,触发一个方法来加载更多数据到列表
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {  
          
        if (indexPath.row == [items count]) {  
            [loadMoreCell setDisplayText:@"loading more ..."];  
            [loadMoreCell setAnimating:YES];  
            [self performSelectorInBackground:@selector(loadMore) withObject:nil];  
            //[loadMoreCell setHighlighted:NO];  
            [tableView deselectRowAtIndexPath:indexPath animated:YES];  
            return;  
        }  
        //其他cell的事件  
    加载数据的方法:
    -(void)loadMore  
    {  
        NSMutableArray *more;   
            //加载你的数据  
        [self performSelectorOnMainThread:@selector(appendTableWith:) withObject:more waitUntilDone:NO];  
    添加数据到列表:
    -(void) appendTableWith:(NSMutableArray *)data  
    {  
        for (int i=0;i<[data count];i++) {  
            [items addObject:[data objectAtIndex:i]];  
        }  
        NSMutableArray *insertIndexPaths = [NSMutableArray arrayWithCapacity:10];  
        for (int ind = 0; ind < [data count]; ind++) {  
            NSIndexPath    *newPath =  [NSIndexPath indexPathForRow:[items indexOfObject:[data objectAtIndex:ind]] inSection:0];   
            [insertIndexPaths addObject:newPath];  
        }  
        [self.tableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationFade];  
    }  
    小结:详解iPhone Tableview分批显示数据的内容介绍完了,希望通过本文的学习能对你有所帮助!
  • 相关阅读:
    多个类定义attr属性重复的问题:Attribute "xxx" has already been defined
    好用的批量改名工具——文件批量改名工具V2.0 绿色版
    得到ImageView中drawable显示的区域的计算方法
    得到view坐标的各种方法
    实现类似于QQ空间相册的点击图片放大,再点后缩小回原来位置
    Material Designer的低版本兼容实现(五)—— ActivityOptionsCompat
    Android 自带图标库 android.R.drawable
    解决 Attempting to destroy the window while drawing!
    解决Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 4
    Material Designer的低版本兼容实现(四)—— ToolBar
  • 原文地址:https://www.cnblogs.com/top5/p/2506553.html
Copyright © 2011-2022 走看看