如何在里面用UICollectionView实现View Controller?

时间:2014-05-27 19:23:32

标签: ios iphone objective-c uicollectionview uicontainerview

我正在尝试实施"个人资料"我的应用程序中的页面类似于Instagram个人资料页面 instagram wireframe

但我遇到的问题是来自下面的UICollectionView的Cell被-collectionView加载:cellForItemAtIndexPath 但是它一次加载每个单元格,它不仅仅应该加载可见单元格。这是因为它在滚动视图内部,使每个单元格立即加载。

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

请帮忙。我认为使用CollectionView的Header作为页面的上半部分可能会解决问题。但我也希望实现这一点,当用户点击按钮,然后下面的显示更改(就像Instagram页面)。所以我不确定我应该走哪条路。它应该是自定义容器VC还是其他什么?

TIA

1 个答案:

答案 0 :(得分:1)

UICollectionView非常通用。它可以处理整个视图,包括与用户配置文件相关的上半部分。技巧是使用"补充视图"在集合视图术语中(如表视图术语中的标题视图)。

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

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

并响应数据源方法:

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

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