swift UI专项训练39 用Swift实现摇一摇功能
? ?微信的搖一搖功能想必大家都用過。過春節(jié)的時(shí)候搶紅包也沒少搖吧。那么用swift語言怎樣實(shí)現(xiàn)這么酷炫的功能呢。搖動(dòng)屬于IOS內(nèi)置可識(shí)別的一種動(dòng)作,在你須要實(shí)現(xiàn)搖動(dòng)功能的viewcontroller中,在viewDidLoad方法中增加下面代碼:
UIApplication.sharedApplication().applicationSupportsShakeToEdit = trueself.becomeFirstResponder()第一句是要求當(dāng)前頁面支持對(duì)搖動(dòng)事件可編輯的支持,設(shè)置為true后我們能夠?qū)崿F(xiàn)對(duì)應(yīng)的方法,稍后會(huì)介紹。
第二句是把當(dāng)前頁面作為第一反應(yīng)者,也就說我們有不論什么操作結(jié)果都會(huì)反映到當(dāng)前頁面中。
如今我們能夠使用與搖動(dòng)相關(guān)的方法了,主要有三個(gè):motionBegin、motionEnded、motionCancelled。
分別捕獲搖動(dòng)開始、搖動(dòng)結(jié)束和搖動(dòng)取消三個(gè)動(dòng)作。
我們選用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結(jié)束的時(shí)候推斷。假設(shè)剛才的motion是搖動(dòng)的話,那么彈出一個(gè)警告框,提示“恭喜你,成功了?!薄R韵挛覀冇梦医谠谧龅囊粋€(gè)APP來測(cè)試下,這是搖動(dòng)前的畫面:
然后我們搖動(dòng)手機(jī),看看效果:
你能夠在這三個(gè)方法中增加自己須要的代碼。實(shí)現(xiàn)更豐富的功能。
最后再說一點(diǎn)??淳W(wǎng)上之前的資料說須要添加方法,由于大部分view不支持firstresponder:
override func canBecomeFirstResponder() -> Bool {return true}可能這是曾經(jīng)的版本號(hào)了。我用的是xcode6.2正式版,親測(cè)是不須要加這種方法的。轉(zhuǎn)載于:https://www.cnblogs.com/yangykaifa/p/7105821.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的swift UI专项训练39 用Swift实现摇一摇功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Leetcode] Remove du
- 下一篇: fem求解二维时谐电磁场问题