如何在不接触 Swift 中的段的情况下动态更改 UISegmentControl幻灯片的索引?

问题描述

我正在努力实现我在任何地方都找不到任何来源或示例的东西。我想实现运动检测,当用户摇晃手机时,我想在不明确触摸它的情况下更改该段。因此,例如,当用户在我的应用程序中摇晃手机时,它会检测到运动,如果 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)
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...