【发布时间】:2021-02-10 08:58:33
【问题描述】:
我正在尝试显示一个集合视图,其中每个单元格在边框内显示一个字符串。我已将方向设置为 VERTICAL。因此,每行中可以有多个具有动态大小的单元格。但是单元格以不同的项目间空间显示。
当前收集状态视图:
我的收藏视图配置如下:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if(collectionView == tagsCollectionView)
{
if(self.propertyTypes.count > 0)
{
if(indexPath.row == 0)
{
return CGSize(width: "You searched for properties in: ".width(withConstrainedHeight: 25, font: UIFont(name: "Avenir-Book", size: 13)!), height: 30)
}
return CGSize(width: self.propertyTypes[indexPath.row - 1].width(withConstrainedHeight: 25, font: UIFont(name: "Avenir-Book", size: 13)!), height: 30)
}
return CGSize(width: 0, height: 0)
}
return "String".size(withAttributes: nil)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 10
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return 5
}
但是,当方向为水平方向时,集合视图工作得非常好。
【问题讨论】:
-
尝试使用这个collectionview flowlayout 类来摆脱这个计算:- github.com/Digipolitan/collection-view-left-align-flow-layout
-
这是默认布局的行为。这就像“对齐文本”。适合线宽,除了最后一行。你需要一个自定义布局来实现你想要的。
-
尝试将代码放入 didLoad():-
yourCollectionView.collectionViewLayout = DGCollectionViewLeftAlignFlowLayout() -
是的,@KishanBarmawala。
-
@KishanBarmawala 谢谢兄弟!你让我今天一整天都感觉很好!干杯
标签: ios swift uicollectionview