【发布时间】:2021-09-02 19:05:49
【问题描述】:
我想在 UITableViewCell 中检测摇晃手势,但未注册摇晃。有没有办法检测 UITableView 单元格中的抖动?
这是我现在使用的代码:
extension MyTableViewCell {
override func motionBegan(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
print("shake started")
}
override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
print("shake stopped")
}
}
【问题讨论】:
-
为什么要在表格视图单元格中执行此操作?您希望打印的“摇动开始”数量与屏幕上的单元格数量一样多吗?
-
tableviewcell 中有特定的属性在单元格中进行动画处理,我想在发生抖动时更改单元格中发生的动画@Sweeper
-
所以看起来你希望你的所有细胞都响应运动事件,我不认为这不是真的。只有一个“第一响应者”。你最多可以让一个细胞响应运动事件。你可以做的是让任何持有表格视图的东西(例如你的 VC)处理运动事件,更新变量,然后重新加载可见单元格。
-
正如@Sweeper 所说,在
UITableView下检测设备被晃动是没有意义的。 -
您需要使用通知。
标签: ios swift xcode uitableview shake