我正在关注an old tutorial,以了解如何在集合视图上创建标签流系统。我设法显示了每个标签具有不同大小的完整标签,但是我正在努力使单元格自行调整大小。我是Swift / Xcode的初学者,因此错误一定很傻,但是我无法弄清楚。
我关注了this tutorial,但是我的记录不起作用。我根据Xcode的建议做了一些改动,因为那里的语法有些陈旧。我想我可能误会了一些东西。
I have uploaded the project to 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)
}
我希望不同的行能够具有不同数量的标签(例如在流布局中),并且每个标签单元具有不同的宽度。相反,每个单元格都具有大小尺寸,但是标签允许具有不同的大小。