ios - UICollectionViewCell 中的 subview Controller

标签 ios objective-c uicollectionview childviewcontroller

假设我想实现 Pinterest 的 pin 页面,像这样:

pinterest

这是我的方法:

  1. 制作一个UICollectionViewController,pin的页面是一个UICollectionViewCell
  2. cell 由两个部分组成:pin info child vc && waterfall child vc

然后问题来了:如何重用 subview Controller ?

一些伪代码:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
    Pin *pin = self.dataSource[indexPath.row];
    // i have to create a new childVC, based on different indexPath.
    UITableViewController *pinInfoViewController = [[pinInfoViewController alloc] initWithPin:pin];
    [cell updatePinViewWithPin:pin];
    [self addChildViewController:pinInfoViewController];

    // Add waterfall view controller
}

每次调用这个方法都会创建一个新的child view controller,可以吗,或者如何改进?

最佳答案

我最近遇到过类似的情况,并且在各种解决方案之间做出选择,如 UIViewController within UICollectionView 中详述的那样。 .现在似乎有一个封装此模式的开源项目可用:https://github.com/zats/Voltron .如果您的问题可能通过拥有 UIViewControllers 的 UICollectionView 得到最好的解决,那么它比尝试自己动手更容易完成。

关于ios - UICollectionViewCell 中的 subview Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22446768/

相关文章:

ios - Swift 2 - 定期从 slider 打印新值

ios - Swift:将数据从 UITableView 发送到 UIViewController

iphone - 将后退按钮添加到 View Controller

ios - 生成随机数并在添加/减去它们后比较 objective-c 中的结果

ios - 如何在 iOS 8 中比较两个 UIImage

iphone - 如果 NSDictionary 键顺序从不改变,是否保证与初始化的顺序相同?

ios - 如何检查刷新控件是否在其目标操作方法中刷新

ios - 如何将 collectionview 单元格扩展到全屏

ios - 当我点击任何 Collection View 单元格(不点击最后一个单元格)时,如何移动另一个 View Controller ?

ios - 团队未在 iTunes Connect 上显示