Iphone uitableview在滚动到顶部时自动升级

Iphone uitableview在滚动到顶部时自动升级,iphone,objective-c,ios,Iphone,Objective C,Ios,我想在Uitableview滚动到顶部时更新它。在facebook应用程序中,当我们将uitableview滚动到顶部时,它将显示“upadating”,并在表的顶部视图中插入新行。我想在我的应用程序中提供相同的效果。是否可以使用默认的uitableview方法进行设计,或者我们需要对其进行自定义。 如果有人对此有想法,请回复。您可以使用insertRowsAtIndexPaths:在表视图前面插入新行。比如说, NSIndexPath *indexPathForRow_0_0 = [NSIn

我想在Uitableview滚动到顶部时更新它。在facebook应用程序中,当我们将uitableview滚动到顶部时,它将显示“upadating”,并在表的顶部视图中插入新行。我想在我的应用程序中提供相同的效果。是否可以使用默认的uitableview方法进行设计,或者我们需要对其进行自定义。
如果有人对此有想法,请回复。

您可以使用
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
好得多。