【发布时间】:2017-07-27 21:17:16
【问题描述】:
我试图根据单元格的优先级(枚举)重新排序单元格。我已经仔细检查了我的枚举值是否正确。这是我的枚举
enum Priority{
case low
case neutral
case high
case urgent
}
如您所见,较低的优先级具有较低的哈希值。我正在尝试比较两个单元格;一个单元格和它上面的单元格。如果单元格的值大于它上面的值,它将向上移动。我使用
获取上面单元格的IndexPathvar newIndexPath = IndexPath(row: indexPath.row - 1 , section: indexPath.section)
使用比较枚举值后
if(comparePriority.hashValue < priorityValue.hashValue)
我尝试使用
切换顺序tableview.moveRow(at: indexPath, to: newIndexPath)
结果很有趣,我会用图片来解释。请注意,所有这些代码都在我的cellForRowAt 函数中,并且所有单元格都被赋予了与其名称相对应的优先级,除了“test”,而且这些图片是以慢动作拍摄的,这意味着用户将无法实际看到切换发生。
【问题讨论】:
-
那么你想要动画它的移动吗?否则排序数组后调用 reloadData 对你有用。
标签: ios swift uitableview enums