我想知道是否可以调整单个UICollectionViewCell的大小?
我一直在寻找诸如layoutAttributesForItemAtIndexPath和layoutAttributesForElementsInRect之类的东西,但是它们都需要您手动设置每个项目的框架,这会带来更多麻烦,因为一旦调整单元格的大小,我必须再次计算框架。我的计划是能够选择一个单元格,使其展开以适合屏幕宽度,并向下推所有其他单元格,而其他单元格保持其列和行。

有人做到了吗?

谢谢

最佳答案

var selectedIndexPath: NSIndexPath?

// MARK: - UICollectionViewDelegate

override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
    selectedIndexPath = indexPath
    collectionView.performBatchUpdates(nil, completion: nil)
}

// MARK: - UICollectionViewDelegateFlowLayout

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    var size = CGSize(width: 100, height: 100)

    if selectedIndexPath == indexPath {
        size.width = CGRectGetWidth(collectionView.frame)
    }
    return size
}

是的,就是这么简单。

(尽管这不能回答问题,如果这是个好主意。您将在实现它时看到它;)

关于ios - 调整单个UICollectionViewCell的大小,可以吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28144145/

10-10 20:56