我有一个集合视图控制器。其中一个集合视图的单元格包含一个按下触摸和触摸内部的按钮。
严格地说,该按钮位于视图控制器的视图中,视图控制器是集合视图单元的子视图。
按下按钮时会触发Touch Down,当释放按钮时,Touch Up Inside会被触发。在按钮未释放之前,按钮呈灰色,并且不会触发Touch Up Inside。
这正是我需要的行为。
现在,我已经实现了这两种方法来支持重新排序集合视图的单元格:
func collectionView(_ collectionView: UICollectionView, canMoveItemAt indexPath: IndexPath) -> Bool
func collectionView(_ collectionView: UICollectionView, moveItemAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath)
如果实现了第二种方法(如果canMoveItemAt返回true或false),则按钮行为会发生变化:
按下该按钮后,立即触发Touch Down事件,然后立即触发Touch Up Inside事件。
按下该按钮时呈灰色,并立即恢复到正常状态,就像它已被释放一样
释放按钮时,没有任何反应
我怀疑是事件从按钮传播到集合视图控制器,但我不知道如何阻止它。
任何人都可以帮助我吗?
韩国社交协会
答案 0 :(得分:0)
你是对的,但如果你停止它,你也会停止重新排序。基本上你需要选择你需要的东西:按下按钮或拖动单元格。也许你可以利用Collection cell功能而不是按钮来实现预期的行为。如果需要按钮来表示正在拖动单元格,则可以轻松更改按钮状态。