问题描述
我正在努力实现我在任何地方都找不到任何来源或示例的东西。我想实现运动检测,当用户摇晃手机时,我想在不明确触摸它的情况下更改该段。因此,例如,当用户在我的应用程序中摇晃手机时,它会检测到运动,如果 selectedSegmentIndex 为 0,它应该移动到索引 1,同样,如果它在第一个索引上,它应该移动到 0 的索引。到目前为止,我已经实现了运动检测,但我不知道如何根据运动为 UiSegmentControl 启动事件。有什么地方可以这样做吗?甚至有可能吗?请任何人都可以帮助我吗?任何可能的想法和示例将不胜感激。
到目前为止我已经完成了:
override var canBecomeFirstResponder: Bool {
get {
return true
}
}
override func motionEnded(_ motion: UIEvent.EventSubtype,with event: UIEvent?) {
if motion == .motionShake {
Vibration.heavy.vibrate()
switch self.mysegmentControl.selectedSegmentIndex {
case 0:
print("0")
case 1:
print("1")
default:
break
}
}
}
解决方法
试试:
if motion == .motionShake {
switch self.mysegmentControl.selectedSegmentIndex {
case 0:
self.mysegmentControl.selectedSegmentIndex = 1
case 1:
self.mysegmentControl.selectedSegmentIndex = 0
default:
break
}
self.mysegmentControl.sendActionsForControlEvents(UIControlEvents.ValueChanged)
}