我想实现支持单元格依赖于autoLayout的动态高度的collectionView。我有产品单元,其中包含图像,并在其底部stackview包含其价格和折扣价格和timerLabel产品报价将完成。有时候产品没有报价,所以我需要从stackView隐藏计时器,然后单元格高度会改变。 我用过这段代码
override func viewDidLoad() {
super.viewDidLoad()
homeCollection.delegate = self
homeCollection.dataSource = self
homeCollection.register(UINib(nibName: "ProductCell", bundle: Bundle.main), forCellWithReuseIdentifier: "cell")
(homeCollection.collectionViewLayout as! UICollectionViewFlowLayout).estimatedItemSize = UICollectionViewFlowLayoutAutomaticSize
}
然后在cellForItemAtIndex中进行测试我使用了这段代码
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! ProductCell
if indexPath.row == 0
{
cell.productTimerLabel.isHidden = true
}
return cell
} 输出是这样的 我的问题为什么第一个细胞的topAligment比第二个细胞的top aligment更低,我希望它们都有相同的对齐
答案 0 :(得分:0)
您需要自定义UICollectionViewLayout
,因为UICollectionViewFlowLayout
总是居中,而不是您想要的顶部对齐。
我建议您使用Github
中使用的Aligned collection view flow layout。它有一个属性,允许您与verticalAlignment = .top