hpi*_*que 14 iphone interface-builder ios uicollectionview uicollectionviewcell
如果我理解正确,a的内容UICollectionViewCell应该进入其contentView属性和背景backgroundView.
然而,当我拖动UICollectionViewCell到Interface Builder时,没有提到contentView或backgroundView.如果我添加子视图,那些将整个单元格作为其父级,而不是contentView或backgroundView.
那么UICollectionViewCell用IB 定义一个正确的方法是什么?
rde*_*mar 14
"如果我添加子视图,那些将整个单元格作为其父级,而不是contentView"
这不是真的.如果您拖入UICollectionViewCell并向其添加UI元素,则将它们添加到内容视图中.事实上它没有出现在对象列表中并不意味着它不存在(NSBox也是如此 - 它有一个内容视图,也没有出现在IB中).如果在collectionView:didSelectItemAtIndexPath:中,您记录了cellForItemAtIndexPath,并查看其子视图,您只找到一个,它与您通过记录cell.contentView得到的相同.如果您记录其子视图,那么您将看到您的UI元素.
现在,就背景视图而言,我认为您无法从IB访问这些内容.您可以使用带有UIView的xib文件,然后将其分配给单元格的backgroundView属性.
由于缺乏一个更好的选择的,我使用了单独的榫文件contentView和backgroundView.然后在我的UICollectionViewCell子类中:
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self)
    {
        NSArray *contentViewNib = [[NSBundle mainBundle] loadNibNamed:@"CollectionViewCellContentView" owner:self options:nil];
        [self.contentView addSubview:contentViewNib[0]];
        NSArray *backgroundViewNib = [[NSBundle mainBundle] loadNibNamed:@"CollectionViewCellBackgroundView" owner:self options:nil];
        self.backgroundView = backgroundViewNib[0];
    }
    return self;
}
| 归档时间: | 
 | 
| 查看次数: | 7994 次 | 
| 最近记录: |