在alert(selectedItemText);
// Show "AAABBBBCCCCC"
// But I want "AAA\nBBBB\nCCCCC" How to split selectedItemText by new line?
我注册了这样的单元格:
viewDidLoad
并在我let cellIdentifier = "Cell"
override func viewDidLoad() {
super.viewDidLoad()
let cellNib = UINib(nibName: "ViewCell", bundle: nil)
collection.register(cellNib, forCellWithReuseIdentifier: cellIdentifier)
}
的{{1}}中执行:
cellForItemAt
唯一的问题可能是代码是Mixed Swift / ObjC,UICollectionViewDataSource
是ObjC并在桥接头中导入:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
// It crashes while trying to dequeue with the Error message: Assertion failure in -[UICollectionView _dequeueReusableViewOfKind:withIdentifier:forIndexPath:viewCategory:]
let dequedCell = collection.dequeueReusableCell(withReuseIdentifier: cellIdentifier, for: indexPath)
return dequedCell
}
我收到以下错误:
***断言失败 - [UICollectionView _dequeueReusableViewOfKind:withIdentifier:forIndexPath:viewC ategory:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UI洁3600.7.47 / UIColl ectionView.m:5106
我确保所有名字都是正确的。有谁知道为什么会发生这种崩溃?
答案 0 :(得分:1)
答案 1 :(得分:1)
这是问题
1)您需要在XIB中注册小区标识符,
2)将班级名称分配给XIB
3)你需要检查的行的单元格?出列的YourClass和
4)使用您分配给XIB的相同标识符出列并注册
答案 2 :(得分:0)
有谁知道为什么会发生这种崩溃?
要考虑的一件事是register(_:forCellWithReuseIdentifier:)
the docs说:
nib文件必须只包含一个顶级对象,该对象必须是UICollectionViewCell类型。
所以,检查那是真的。换句话说......
let nibObjects = cellNib.instantiate(withOwner: nib, options: nil)
let count = nibObjects.count // is this 1?
let view = nibObjects.first // is view a UICollectionViewCell?