【发布时间】:2016-01-26 00:31:29
【问题描述】:
我已经尝试了几个小时没有运气。我有一个 UICollectionView 集合视图。集合视图基本上是一个列表,最后一个单元格始终是带有大加号的单元格以添加另一个项目。我已经启用了以下重新排序。我想要它做的是当我开始交互式移动时,加号单元格消失,然后当用户完成编辑时,它再次出现。这是我拥有的代码的基本版本:
func handleLongGesture(gesture: UILongPressGestureRecognizer) {
switch(gesture.state) {
case UIGestureRecognizerState.Began:
...
self.collectionView.beginInteractiveMovementForItemAtIndexPath(selectedIndexPath)
removeAddCell()
case UIGestureRecognizerState.Changed:
case UIGestureRecognizerState.Ended:
...
collectionView.endInteractiveMovement()
replaceAddCell()
default:
collectionView.cancelInteractiveMovement()
}
}
func removeAddCell(){
print("Reloading data - removing add cell")
data_source.popLast()
self.collectionView.reloadData()
}
func replaceAddCell(){
print("Reloading data - replacing add cell")
data_source.append("ADD BUTTON")
self.collectionView.reloadData()
}
这是非常粗糙的伪代码,但我什至无法让最简单的版本工作。使用我拥有的代码,它在我从数据源中删除项目后引用 UICollectionViewCell 的行上给出了可怕的“致命错误:在展开可选值时意外发现 nil”。
如果有做过类似事情的人可以分享他们的方法,我将不胜感激!谢谢!
-布莱斯
【问题讨论】:
-
与其试图删除它,为什么不使用不透明度(alpha)隐藏它并关闭用户交互?加号变暗而不是完全消失可能是更好的用户体验。如果您开始拖动某个东西,而另一个东西消失了,那可能看起来好像出了点问题。
-
能用告诉我们哪一行有致命错误吗?
-
我尝试使用 alpha 0 隐藏它,但单元格仍然存在,因此如果用户将单元格从顶部移动到底部,则在倒数第二个位置添加细胞群岛@迈克尔
标签: ios swift uicollectionview uicollectionviewcell