【发布时间】:2016-01-07 15:41:56
【问题描述】:
我想为我的 UICollectionView 中的更改设置动画。我将 collectionView 作为@IBOutlet:
@IBOutlet weak var collectionView: UICollectionView!
然后集合视图重新加载(这样我就可以更改每个单元格的 alpha),如下所示:
var bulkAwardMode = false;
@IBAction func bulkAwardToggleClicked(sender: UIButton) {
if(bulkAwardMode == false) {
bulkAwardMode = true
} else {
bulkAwardMode = false
}
dispatch_async(dispatch_get_main_queue(), {
self.collectionView.reloadData()
})
}
但是由于这不是动画,我尝试将reloadData() 行更改为self.collectionView.reloadSections(NSIndexSet(index: 0)),但这只会导致崩溃并出现错误attempt to create view animation for nil view。
我显然做错了什么,但我不太确定是什么。我也尝试将代码放在UIView.animateWithDuration 块中,但也失败了。
【问题讨论】:
-
所以你要淡入,淡出每个单元格的数据,然后1秒后显示其他数据?
-
在
cellForItemAtIndexPath中,我根据批量奖励是否开启来设置阿尔法,所以reloadData()会更新阿尔法——我希望该更改具有动画效果。那有意义吗?如果有帮助,我计划让用户选择单个单元格,然后在启用批量奖励的情况下变成不同的颜色。 -
@Ben 你知道如何解决这个错误吗?谢谢!
-
@sridvijay 不幸的是没有 - 下面的解决方案并没有真正做到我最初想要的。我敢肯定,如果我改变我的方法,它们会产生类似的效果,但这并不能真正解释为什么我尝试的方法不起作用。
-
谢谢,是的,我最终只是切换到了表格视图。这很奇怪,因为我无法在单独的新项目中重新创建它只是为了测试它......
标签: ios swift animation uicollectionview