Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios “的UIC控制”;“向上拉”;刷新?_Ios_Objective C_Uicollectionview_Uirefreshcontrol - Fatal编程技术网

Ios “的UIC控制”;“向上拉”;刷新?

Ios “的UIC控制”;“向上拉”;刷新?,ios,objective-c,uicollectionview,uirefreshcontrol,Ios,Objective C,Uicollectionview,Uirefreshcontrol,如何将UIRefreshControl添加到UIColloctionView的底部?这意味着当它向上滚动(查看旧数据或其他东西)时,它是如何工作的 你不能。您根本无法定制UIRefreshControl。您无法使用UIRefreshControl来实现这一点,但如果您同意使用更简单的解决方案,您可以设置集合视图,以便在滚动到底部时自动加载更多数据。(顺便说一句,这是一个更为常见的用户界面……上拉刷新并不常见,但当您触底时自动检索更多数据是很常见的。) 最原始的格式是响应UIScrollViewD

如何将UIRefreshControl添加到UIColloctionView的底部?这意味着当它向上滚动(查看旧数据或其他东西)时,它是如何工作的

你不能。您根本无法定制
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
        }
    }
}