tableView下拉加载,该怎么处理
tableView下拉加载
请问有经验的大神们,我现在想让tableView存聊天记录,只显示10条,下拉一下刷新,加载10条,一直到聊天记录显示完。在网上找了demo用。EGORefreshTableHeaderView。应该很多人都用过,但是用这个demo只能下拉刷新,我是想下拉一次加载10个,数据源是存在数据库里的存取没有问题。
------解决方案--------------------
以下代码是我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;
请问有经验的大神们,我现在想让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;