我想知道是否可以调整单个UICollectionViewCell的大小? 我一直在寻找layoutAttributesForItemAtIndexPath& layoutAttributesForElementsInRect但它们都要求你手动设置每个项目的框架,这会变得更麻烦,因为我必须在调整单元格大小后再次计算框架。我的计划是能够选择单个单元格并将其展开以适应屏幕的宽度,将所有其他单元格向下推,而其他单元格保持其列和行。
有人做到了吗?
感谢
答案 0 :(得分:12)
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
}
是的,就这么简单。
(虽然这不是回答问题,如果这是一个好主意。你会看到你实施它的时候;)