首先,这是我发现的唯一可能相关的问题:viewWithTag in UICollectionViewCell returns nil in Swift (until cell is reused)
我正在使用Xcode 7.1.1并且在我的故事板中实际上有另一个UIcollectionView
可以正常工作。我发现有效的那个与这一个没有区别。
这是证明我疯狂的代码(来自cellForItemAtIndexPath内部):
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("VariantCell", forIndexPath: indexPath)
let cellBeforeCount = cell.subviews.count
let contentBeforeCount = cell.contentView.subviews.count
self.view.addSubview(cell)
let cellAfterCount = cell.subviews.count
let contentAfterCount = cell.contentView.subviews.count
print("\(cellBeforeCount) \(contentBeforeCount) \(cellAfterCount) \(contentAfterCount)")`
cellBeforeCount == 1,contentBeforeCount = 0,cellAfterCount == 4,contentAfterCount == 0
以下是此VC的XML故事板:
正如您所看到的,<collectionViewCell>
中的第一个视图是一个关键字为contentView
的视图,而我的标签(您只能看到第一个)是它的子视图。
为什么世界上没有任何子视图存在,直到将单元格添加到父视图后为什么不将子视图添加到contentView?两者必须相关,对吗?