下面是我的代码。
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell : UniversalNewChatUsersCell = collectionView.dequeueReusableCell(withReuseIdentifier: "UniversalNewChatUsersCell", for: indexPath) as! UniversalNewChatUsersCell
cell.lblUsername.text = self.arrSelectedUsersToChat.object(at: indexPath.row) as? String
cell.layoutSubviews()
return cell
}
我希望根据它的内容更改单元格宽度,以及我在下面使用的方法。
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: 150.0, height: 44.0)
}
目前我传递静态宽度。
现在我想要的是我想要访问collectionViewLayout
方法中的单元格,这样我就可以得到单元格标签,并且根据这个标签,我可以计算它的宽度。我怎样才能做到这一点?
答案 0 :(得分:1)
您可以通过调用collectionview的cellForItem来获取单元格。在sizeForItemAt方法中编写代码
if let collectionViewCell = collectionView.cellForItem(at: indexPath) as? YourCollectionViewCell {
}
答案 1 :(得分:0)
在collectionViewLayout方法中执行以下操作:
if let myCell = collectionView.cellForItem(at: indexPath) as? UniversalNewChatUsersCell
print(myCell)
}