swift UI专项训练39 用Swift实现摇一摇功能
? ?微信的搖一搖功能想必大家都用過。過春節的時候搶紅包也沒少搖吧。那么用swift語言怎樣實現這么酷炫的功能呢。搖動屬于IOS內置可識別的一種動作,在你須要實現搖動功能的viewcontroller中,在viewDidLoad方法中增加下面代碼:
UIApplication.sharedApplication().applicationSupportsShakeToEdit = trueself.becomeFirstResponder()第一句是要求當前頁面支持對搖動事件可編輯的支持,設置為true后我們能夠實現對應的方法,稍后會介紹。
第二句是把當前頁面作為第一反應者,也就說我們有不論什么操作結果都會反映到當前頁面中。
如今我們能夠使用與搖動相關的方法了,主要有三個:motionBegin、motionEnded、motionCancelled。
分別捕獲搖動開始、搖動結束和搖動取消三個動作。
我們選用motionEnded來舉例:
override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) {if motion == UIEventSubtype.MotionShake{var alertController1 = UIAlertController(title: "恭喜你,成功了!", message: nil, preferredStyle: .Alert) var cancelAction = UIAlertAction(title: "取消", style: .Cancel, handler: nil) alertController1.addAction(cancelAction) self.presentViewController(alertController1, animated: true, completion: nil) } }
這種方法是在motion結束的時候推斷。假設剛才的motion是搖動的話,那么彈出一個警告框,提示“恭喜你,成功了。”。以下我們用我近期在做的一個APP來測試下,這是搖動前的畫面:
然后我們搖動手機,看看效果:
你能夠在這三個方法中增加自己須要的代碼。實現更豐富的功能。
最后再說一點。看網上之前的資料說須要添加方法,由于大部分view不支持firstresponder:
override func canBecomeFirstResponder() -> Bool {return true}可能這是曾經的版本號了。我用的是xcode6.2正式版,親測是不須要加這種方法的。轉載于:https://www.cnblogs.com/yangykaifa/p/7105821.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的swift UI专项训练39 用Swift实现摇一摇功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Leetcode] Remove du
- 下一篇: fem求解二维时谐电磁场问题