objective-c – 在UICollectionViewCell上设置.reuseIdentifier
我有一个特定的UICollectionViewCell,我想自己实例化,并添加到UICollectionView.为了使其工作,UICollectionViewCell实例需要设置其.reuseIdentifier属性.
通常,描述单元格的类或Nib是在集合视图中注册的,集合视图使用以下方法实例化已设置了.reuseIdentifier的单元格: - registerClass:forCellWithReuseIdentifier: - registerNib:forCellWithReuseIdentifier: 但是,由于我在集合视图之外构建此单元格,因此这些单元格不适用. 当我自己创建单元格时,似乎无法设置其.reuseIdentifier(因为它是一个只读属性,并且没有初始化它的init …方法). 如果未设置.reuseIdentifier,则在添加单元格时,UICollectionView会引发异常.此行为与UITableView不同,其中重用标识符是可选的. 设置集合视图单元的重用标识符的简单解决方法是将其嵌入.xib文件并使用标识符框,然后使用标识符框创建一个实例 [NSBundle.mainBundle loadNibNamed:@"MyCellName" owner:self options:nil][0]; 然后我可以传递上面实例化的UICollectionViewCell,一切正常. ……但这似乎是一个非常愚蠢和随意的箍跳过.是否有其他方法可以在没有.xib-wrapper绕行的情况下在单元实例上设置此属性? 更新:Apple的文档说明了这一点:
…实际上并非如此,因为它不需要这个(即,只要它们的标识符以某种方式设置,外部实例化单元格就可以正常工作,例如,如果从.xib加载),它也不会“在我的特定用例中简化了我的代码的创建过程(而不是需要额外的文件;进一步要求集合视图创建这些复杂的一次性操作会很麻烦). 但上述情况似乎暗示问题的答案是否定的:创建可用的单元格是有意“困难”的,除非让集合视图出列. 解决方法
使用这两种方法.
– registerNib:forCellWithReuseIdentifier: – dequeueReusableCellWithReuseIdentifier:forIndexPath: 见苹果UICollectionView Class Reference (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |