如何更改collectionview中单个单元格的大小?我想获取滑块的值并使用该值来调整单元格的大小

时间:2018-08-22 23:47:54

标签: ios swift

到目前为止,我已经创建了一个在每个单元格中带有标签的collectionview。我有一个按钮,它将新的单元格追加到数组。我什至可以根据滑块的值使所有单元格均等地改变高度。但是,我不确定如何更改集合视图中仅一个单元格的大小。有人对此有见识吗?我没有看到答案。

如有必要,我可以发布我的代码

编辑:自请求以来,以下是代码:

 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

    return visualArray.count
}


func collectionView(_: UICollectionView, layout: UICollectionViewLayout, sizeForItemAt: IndexPath) -> CGSize {

    return CGSize(width: self.collectionThing.frame.height / 6 * 5, height: CGFloat(sliderSlider.value * 4))
}



func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "VisualCollectionViewCell", for: indexPath) as! VisualCollectionViewCell

    cell.visualLabel.text = visualArray[indexPath.row]

    return cell
}

1 个答案:

答案 0 :(得分:1)

假设您使用的是默认布局UICollectionViewDelegateFlowLayout,则可以使用委托方法func collectionView(UICollectionView, layout: UICollectionViewLayout, sizeForItemAt: IndexPath) -> CGSize返回该特定单元格的新大小。

我相信,如果您使用空的闭包调用collectionView.performBatchUpdates,则可以触发动画的重新布局,一旦单元格的大小发生变化,就应该这样做。

如果这行不通,则需要创建一个自定义的集合视图布局,在线上有一些有关如何做到这一点的教程。