首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

tableView下拉加载,该怎么处理

2013-09-05 
tableView下拉加载请问有经验的大神们,我现在想让tableView存聊天记录,只显示10条,下拉一下刷新,加载10条,

tableView下拉加载
请问有经验的大神们,我现在想让tableView存聊天记录,只显示10条,下拉一下刷新,加载10条,一直到聊天记录显示完。在网上找了demo用。EGORefreshTableHeaderView。应该很多人都用过,但是用这个demo只能下拉刷新,我是想下拉一次加载10个,数据源是存在数据库里的存取没有问题。 tableView 下拉 加载
[解决办法]
以下代码是我scrollView代码实现滑动下载的核心代码。希望对你有参考作用。
//szVision--表示可见的范围
//szItem -- 表示每个显示在scrollview的单品尺寸
//szDiff -- 表示每个item之间的距离
-(NSMutableSet*)getDownloadIndexSetForVerticalStyle:(int)nColNums
{
    assert(self.showsVerticalScrollIndicator == YES);
    
    if(self.contentOffset.y<0)
        return nil;
    
    NSMutableSet* setVisionIndex = [[NSMutableSet alloc]init];
    int nUpExposeHeight = 0;
    int nVisionRowNums = 0;
    int nVisionStartRowMark = -1;//无效值-1,最小值为0, 后续加1
    if(self.contentOffset.y >= -0.1 && self.contentOffset.y<=0.1)
    {
        nUpExposeHeight = 0;
        if(self.szVision.height < self.szItem.height)
        {
            //获取第一行所有item的编号
            nVisionRowNums = 1;
            nVisionStartRowMark = 0;
            [self pushVisionIndexToSet:&setVisionIndex withVSRM:nVisionStartRowMark withVRN:nVisionRowNums withCN:nColNums];
        }
        else
        {
            nVisionStartRowMark = 0;
            nVisionRowNums = (( (self.szVision.height-self.szItem.height)+(self.szDiff.height+self.szItem.height-1)) / (self.szDiff.height+self.szItem.height) ) + 1;


            [self pushVisionIndexToSet:&setVisionIndex withVSRM:nVisionStartRowMark withVRN:nVisionRowNums withCN:nColNums];
        }
    }
    else if( (self.contentOffset.y<=self.szItem.height) && (self.contentOffset.y>0) )
    {
        nVisionStartRowMark = 0;
        nUpExposeHeight = self.szItem.height - self.contentOffset.y;
        int nLeaveVisionHeight = self.szVision.height - nUpExposeHeight;
        nVisionRowNums = ( (nLeaveVisionHeight+(self.szDiff.height+self.szItem.height-1)) / (self.szDiff.height+self.szItem.height) ) + 1;
        [self pushVisionIndexToSet:&setVisionIndex withVSRM:nVisionStartRowMark withVRN:nVisionRowNums withCN:nColNums];
    }
    else
    {
        nVisionStartRowMark = ( ((self.contentOffset.y-self.szItem.height)+(self.szDiff.height+self.szItem.height-1)) / (self.szDiff.height+self.szItem.height) );
        nUpExposeHeight = (nVisionStartRowMark*(self.szDiff.height+self.szItem.height)+self.szDiff.height) - self.contentOffset.y;
        int nLeaveVisionHeight = self.szVision.height - nUpExposeHeight;
        nVisionRowNums = ( (nLeaveVisionHeight+(self.szDiff.height+self.szItem.height-1)) / (self.szDiff.height+self.szItem.height) ) + 1;
        [self pushVisionIndexToSet:&setVisionIndex withVSRM:nVisionStartRowMark withVRN:nVisionRowNums withCN:nColNums];//SV_CLOTHES_COL_NUMS
    }
    
    return setVisionIndex;
}

热点排行