集合视图单元动态高度问题

时间:2018-05-05 05:43:45

标签: swift uicollectionview autolayout uicollectionviewlayout

我想实现支持单元格依赖于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

} 输出是这样的 enter image description here 我的问题为什么第一个细胞的topAligment比第二个细胞的top aligment更低,我希望它们都有相同的对齐

1 个答案:

答案 0 :(得分:0)

您需要自定义UICollectionViewLayout,因为UICollectionViewFlowLayout总是居中,而不是您想要的顶部对齐。

我建议您使用Github中使用的Aligned collection view flow layout。它有一个属性,允许您与verticalAlignment = .top

对齐