San*_*ush 4 iphone dynamic uitableview
我有一个UITableview显示当前10行固定静态的行.现在我想在其中添加一个功能.当用户到达最后一行时,我想向表中添加10行UITableView.我的意思是目前我在应用程序中显示固定的10行.
但是现在我想在用户到达前一行的最后一行时再添加10行UITableview.
请给我任何建议或任何示例代码,以实现我的动机.提前致谢.
Aks*_*hay 15
它实际上非常简单.您需要做的是实现tableView:willDisplayCell:forRowAtIndexPath:属于UITableViewDelegate协议的方法.每次要显示一个单元格时,该方法就会命中.因此,它将告诉您何时将要显示最后一个单元格.然后你可以做一些像 -
– (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *) cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.row == [self.array count] - 1) //self.array is the array of items you are displaying
{
//If it is the last cell, Add items to your array here & update the table view
}
}
Run Code Online (Sandbox Code Playgroud)
另一个(有点数学)选项是实现UIScrollView委托方法(UITableView是子类UIScrollView),即scrollViewDidEndScrollingAnimation:或scrollViewDidScroll:.这些将告诉您用户正在查看的内容的y位置.如果发现最底部的内容可见,则可以添加更多项目.
HTH,
阿克沙伊
小智 12
uitableview源于uiscrollview.为了实现您的目标,您需要实现scrollViewDidEndDecelerating:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
float endScrolling = scrollView.contentOffset.y + scrollView.frame.size.height;
if (endScrolling >= scrollView.contentSize.height)
{
// your code goes here
}
}
Run Code Online (Sandbox Code Playgroud)
这将检测"弹跳效果",例如向上移动可见行以指示想要看到更多.
您如何确切地想要调用额外10行的加载?当用户向下滚动以查看默认加载的前10个时,他可能不想再加载10个.
您可以添加"添加更多"行作为表格的最后一行.当用户点击这个时,你再添加10个.
(我不知道如何检测到"弹跳效果",例如向上移动可见行以表示想要看到更多.)
基本逻辑看起来像这样:
cellForRowAtIndexPath你检查用户是否点击了最后一行,然后调用你的代码来添加10[myTable reloadData]numberOfRowsInSection10,并确保cellForRowAtIndexPath将正确返回你的新线11-20ps如果你真的想要在用户到达表的末尾时加载10个额外的行,你需要调用10个以上cellForRowAtIndexPath或willDisplayCell:forRowAtIndexPath:在最后一行调用时加载.
| 归档时间: |
|
| 查看次数: |
8994 次 |
| 最近记录: |