我试图为第一个单元格的高度设置动画,其余部分向上或向下滚动。单元格内部是带有.ScaleAspectFill
的图像视图如果转换与invalidateLayout()和sizeForItemAtIndexPath交互,我设法做到了,但我无法弄清楚如何动画到结束状态
这就是我正在做的事情:
let cell = collectionView!.cellForItemAtIndexPath(NSIndexPath(forItem: 0, inSection: 0)) as! HomeFeedCell
var size:CGSize = getNewSize(cell)
UIView.transitionWithView(collectionView!, duration: duration, options: .CurveEaseOut | .LayoutSubviews, animations: {
cell.frame.size.height = size.height
}, completion: nil)
这会激活第一个单元格,但不会移动其余单元格。我尝试了invalidateLayout()或重新加载动画块内的可见单元格,但它给出了奇怪的结果
答案 0 :(得分:1)
因此,如果有人坚持使用相同的答案,也可以使用nil更新调用集合视图的performBatchUpdates:block
let cell = collectionView!.cellForItemAtIndexPath(NSIndexPath(forItem: 0, inSection: 0)) as! HomeFeedCell
var size:CGSize = getNewSize(cell)
UIView.transitionWithView(collectionView!, duration: duration, options: .CurveEaseOut | .LayoutSubviews, animations: {
cell.frame.size.height = size.height
}, completion: nil)
collectionView!.performBatchUpdates(nil, completion: nil)