Ios “的UIC控制”;“向上拉”;刷新?
如何将UIRefreshControl添加到UIColloctionView的底部?这意味着当它向上滚动(查看旧数据或其他东西)时,它是如何工作的 你不能。您根本无法定制Ios “的UIC控制”;“向上拉”;刷新?,ios,objective-c,uicollectionview,uirefreshcontrol,Ios,Objective C,Uicollectionview,Uirefreshcontrol,如何将UIRefreshControl添加到UIColloctionView的底部?这意味着当它向上滚动(查看旧数据或其他东西)时,它是如何工作的 你不能。您根本无法定制UIRefreshControl。您无法使用UIRefreshControl来实现这一点,但如果您同意使用更简单的解决方案,您可以设置集合视图,以便在滚动到底部时自动加载更多数据。(顺便说一句,这是一个更为常见的用户界面……上拉刷新并不常见,但当您触底时自动检索更多数据是很常见的。) 最原始的格式是响应UIScrollViewD
UIRefreshControl
。您无法使用UIRefreshControl
来实现这一点,但如果您同意使用更简单的解决方案,您可以设置集合视图,以便在滚动到底部时自动加载更多数据。(顺便说一句,这是一个更为常见的用户界面……上拉刷新并不常见,但当您触底时自动检索更多数据是很常见的。)
最原始的格式是响应UIScrollViewDelegate
方法,并确定是否已滚动到集合视图的底部(该视图本身是UIScrollView
的子类):
更好的是,如果您有更多数据要加载,请在底部显示一个单元格,上面写着“请稍候,加载更多数据”,可能带有
UIActivityIndicatorView
。例如,如果要加载更多数据,请使用此单元格在末尾添加一个部分。如果您正确格式化此附加单元格(例如,一个单元格贯穿整个集合视图),它肯定会呈现您想要的效果。以下是实现bottomRefreshControl属性的UIScrollView类(UICollectionView类的父类)的类别。它与iOS 6和iOS 7本机刷新控件兼容。您有向用户发送此通知的示例代码吗?我在滚动结束时加载数据,一切正常。现在我只需要在加载数据时发出通知。加载一个额外的单元格来执行此通知并不是那么简单。谢谢@我想这比你想象的要容易。只需让您的numberOfRowsForSection
多返回一行(假设您有额外的数据要获取)。然后,cellforrowatinexpath
可以查看它是否超出了现有数据的范围,并显示“正在加载”单元格(如果是这样)。请参阅以获取简化的说明。我决定使用您在github示例中使用的方法。有一部分我不确定。当服务器说:我们没有更多数据给您时,tableView应该如何响应?我试图让tableView删除加载单元格,但在删除单元格时出错。有什么想法吗?或者我应该问一个新问题。删除代码是一行代码-->rableView.deleteRowsAtIndexPaths([myIndexPath],withRowAnimation:.None)
我得到的错误是-->更新后现有节中包含的行数(14)必须等于更新前该节中包含的行数(14) ,加上或减去从该节插入或删除的行数。看起来该行没有被删除。我现在查看这是否是因为委托方法返回了一个额外的计数对象-->numberOfRowsInSection{return sellerData.count+1}正确。当您调用deleteRows…
时,它将调用numberOfRows…
,它现在必须比以前少返回一个。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height)
{
if (!self.isLoadingMoreData)
{
self.loadingMoreData = YES;
// proceed with the loading of more data
}
}
}