2

我正在尝试在我的应用中实现一个类似于 Instagram 个人资料页面的“个人资料”页面 Instagram 线框

但我遇到的问题是下面的 UICollectionView 中的单元格由 -collectionView:cellForItemAtIndexPath 加载但它一次加载每个单元格,它不只是按应有的方式加载可见单元格。这是因为它在滚动视图内,使每个单元格立即加载。

单元格的图像将通过 API 从服务器发送,我想在用户滚动到页面的 2/3 时进行加载。这可以在 UICollectionViewController 中轻松完成。但我想知道如何在 ViewController 中执行此操作,该 ViewController 在较低路径中包含 collectionView。

请帮忙。我认为使用 CollectionView 的 Header 作为页面的上部可能会解决问题。但是我也想在用户点击按钮然后下面的显示发生变化时实现这一点(就像 instagram 页面一样)。所以我不确定我应该往哪个方向走。它应该是自定义容器 VC 还是其他?

TIA

4

1 回答 1

1

UICollectionView 非常通用。它可以处理整个视图,包括与用户个人资料有关的上半部分。诀窍是在集合视图术语中使用“补充视图”(如表视图术语中的标题视图)。

我建议你扔掉滚动视图,让集合视图为你完成所有工作。就像您为单元格注册类一样,使用以下命令为 UI 的用户配置文件部分注册一个视图:

- (void)registerClass:(Class)viewClass forSupplementaryViewOfKind:(NSString *)elementKind withReuseIdentifier:(NSString *)identifier

并响应数据源方法:

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath

通过回答该用户个人资料视图。

于 2014-05-27T23:06:14.667 回答