【问题标题】:adding to UICollectionViewCell contentView via nib通过 nib 添加到 UICollectionViewCell contentView
【发布时间】:2013-01-23 17:43:31
【问题描述】:

有没有办法通过 xib 将 UICollectionViewCell 的子视图添加到 contentView?因为我认为这是正确的方法吗?我认为当我通过 xib 拖放 UI 时,它会被放入视图而不是 contentView

【问题讨论】:

    标签: iphone ios objective-c ipad


    【解决方案1】:

    当您将任何视图拖放到 UICollectionViewCell XIB 中时,您将拖动到 cell.contentView,而不是 cell.view。

    请检查 didSelect,你会看到所有的子视图

    - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
        MyCell *cell = (MyCell*)[collectionView cellForItemAtIndexPath:indexPath];
        NSArray *views = [cell.contentView subviews];
        NSLog(@"Select %@",views);
    }
    

    【讨论】:

    • 这对我不起作用,[cell.contentView subviews] 返回一个空数组。我的 xib 文件是 UICollectionViewCell 的派生类型,我在 xib 文件中的控件被添加到主单元格中。
    • 嗨。在 viewDidAppear 之后,您的 Cell 中的每个子视图都显示 OK?@MarkIngram
    • 还是不明白,这是你的问题还是意见?我们可以通过以下方式讨论更多信息:chat.stackoverflow.com/rooms/682/iphone-ipad@MarkIngram
    • 这是错误的,将任何视图拖入 xib 上的 UICollectionViewCell 都会直接添加到单元格中。
    【解决方案2】:

    您可以执行类似于通过 nib 填充 TableViewCell 的操作。

    • 创建一个笔尖

    • 使用适当的唯一标签将子视图添加到其中

    • 使用您创建的单元格注册 Collectionview

      UINib *cellNib = [UINib nibWithNibName:@"ECVCell" bundle:[NSBundle mainBundle]]; [self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"ECVCell"];

    • 使用viewWithTag:方法获取cellForItemAtIndexPath内添加视图的实例 方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 2011-03-28
      相关资源
      最近更新 更多