我已经使用collectionView并在我的ViewController(名为:“DashboardViewController”)中实现了pull同步( pull_Down_To_Get_Data_From_Server )。我尝试了摇动手势
我的DashboardViewController中的代码(如下所示),无法正常工作,但相似的代码在同一应用程序的另一个viewController中工作。

我在第一次尝试中在canBecomeFirstResponder中使用了viewDidLoad,然后在viewDidAppear中使用了ojit_code,但它也没有用。

要求:
实际上,我想知道“.motionShake”事件没有直接触发的情况(如果有),我们必须实现另一种方法?另外我没有发现任何成果
在Google上。
Image of storyboard may help in understanding all the utilities used

override func viewDidLoad() {
 // call super
    super.viewDidLoad()
    self.becomeFirstResponder() // for shake gesture detection
}

// it will make first responder to detect shake motion event
override var canBecomeFirstResponder: Bool {
    get {
        return true
    }
}

// get detection of shake motion event
override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
    if motion == .motionShake
    {
        print("Shake detected")
    }
}

最佳答案

我们在研究Yoshi时遇到了类似的情况

我们最终在UIWindow上创建了一个扩展,其中包含motionBegan事件并转发了该事件。不知道是什么原因造成的,但似乎很快就被3.0打破了。

08-15 20:40