我正在关注一个关于如何在集合视图上制作标签流系统的旧教程。我已经设法显示每个不同大小的完整标签,但我正在努力让单元格自行调整大小。我是 Swift/Xcode 的初学者,所以错误一定很愚蠢,但我想不通。
我已按照本教程进行操作,但我的不起作用。我已经根据 Xcode 推荐的内容进行了一些更改,因为那里的语法有点旧。我想我可能误会了什么。
我已将项目上传到 GitHub,但我认为问题如下:
这个全局变量应该是一个用于检查大小的覆盖函数的单元格:
var sizingCell: TagCell?
在viewDidLoad()
我抓住牢房
self.sizingCell = (cellNib.instantiate(withOwner: nil, options: nil) as NSArray).firstObject as! TagCell
在扩展上
extension ViewController: UICollectionViewDataSource{
...
}
我有以下功能来调整单元格的大小(来自教程)
func configureCell(cell: TagCell, forIndexPath indexPath: IndexPath){
let tag = TAGS[indexPath.row]
cell.tagName.text = tag
}
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAt indexPath: IndexPath) -> CGSize{
self.configureCell(cell: self.sizingCell!, forIndexPath: indexPath)
return self.sizingCell!.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)
}
我希望不同的行能够拥有不同数量的标签(例如在流布局中)并且每个标签单元格具有不同的宽度。相反,每个单元格都有大小,但标签可以有不同的大小。