Iphone uitableview在滚动到顶部时自动升级
我想在Uitableview滚动到顶部时更新它。在facebook应用程序中,当我们将uitableview滚动到顶部时,它将显示“upadating”,并在表的顶部视图中插入新行。我想在我的应用程序中提供相同的效果。是否可以使用默认的uitableview方法进行设计,或者我们需要对其进行自定义。Iphone uitableview在滚动到顶部时自动升级,iphone,objective-c,ios,Iphone,Objective C,Ios,我想在Uitableview滚动到顶部时更新它。在facebook应用程序中,当我们将uitableview滚动到顶部时,它将显示“upadating”,并在表的顶部视图中插入新行。我想在我的应用程序中提供相同的效果。是否可以使用默认的uitableview方法进行设计,或者我们需要对其进行自定义。 如果有人对此有想法,请回复。您可以使用insertRowsAtIndexPaths:在表视图前面插入新行。比如说, NSIndexPath *indexPathForRow_0_0 = [NSIn
如果有人对此有想法,请回复。您可以使用
insertRowsAtIndexPaths:
在表视图前面插入新行。比如说,
NSIndexPath *indexPathForRow_0_0 = [NSIndexPath indexPathForRow:0 inSection:0];
NSIndexPath *indexPathForRow_0_1 = [NSIndexPath indexPathForRow:1 inSection:0];
[yourTableView insertRowsAtIndexPaths:[NSArray arrayWithObjects:indexPathForRow_0_0, indexPathForRow_0_1, nil] withRowAnimation:UITableViewRowAnimationTop];
上述代码在第0节的索引0和1处插入两行
注意:您需要自定义
数据源
和委托
方法,以便使用这些插入进行调整。重要的是您需要从numberofrowsinssection
方法返回正确的值。这里,在上面的示例中,您的numberofrowsinssection
方法应该返回您以前的numberofrows+2,因为我们在这里添加了两行。您可能希望检测用户何时滚动到顶部:
有几种方法可以做到这一点:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y == 0)
NSLog(@"At the top");
}
资料来源:
或使用:
scrollViewDidScrollToTop:
资料来源:
现在,您可以根据用户的操作触发事件:
即
当用户滚动到顶部时,使用调用UI更改,然后调用更新逻辑
insertRowsAtIndexPaths:withRowAnimation:
样本和来源:
更新逻辑结束后,调用[tableView reloadData],假设您的数据源现在已更新。或者,您可能希望使用deleteRowsAtIndexPaths:withRowAnimation:在删除单元格时添加效果,通知您当前正在更新。另一种方法:
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.row == 0) {
[self fetchMoreMessages];
}
}
谢谢你有这方面的教程链接吗?对不起。。我没有任何教程的链接。。我认为简单的谷歌搜索会对你们有所帮助。scrollView可能会插入内容(例如,视图在导航栏后面,而内容从导航栏的末尾开始)。scrollView.contentOffset.y+scrollView.contentInset.top==0应该更好。应该是公认的答案,比tableView案例中的
scrollViewDidScroll
好得多。