IOS13 APP『Swift5』實例說明— 骰子吹牛App. 骰子吹牛程式 ... | 吹牛app

學生心得iOSApp課程IOS13APP『Swift5』實例說明—骰子吹牛AppShinChaoFollowJan2,2020·4minread骰子吹牛程式本身並不複雜,但是有一個地方需要注意,因為是要搖動骰子,所以會用到motion的偵測,那就先說明一下如何偵測晃動(shake)呢?Motiondetectedfunction主要有3個function,只需要在controller裡覆寫下面的function就可,分別如下:motionBegan:搖晃開始。

overridefuncmotionBegan(_motion:UIEvent.EventSubtype,withevent:UIEvent?){//搖動開始要做什麼事}motionEnded:搖晃結束。

overridefuncmotionEnded(_motion:UIEvent.EventSubtype,withevent:UIEvent?){//搖動結束要做什麼事}motionCancelled:搖晃取消。

overridefuncmotionCancelled(_motion:UIEvent.EventSubtype,withevent:UIEvent?){//搖動取消要做什麼事}那要注意什麼呢?因為搖晃開始播放搖動骰子的音樂,但是搖動結束時要停止搖動骰子的音樂。

如果只有在motionEnded內呼叫停止播放搖動骰子的音樂,那麼在實機上(如iphone手機)搖晃時,你會發現有時偵測不到motionEnded,正常因該是motionBegan偵測到開始搖晃,motionEnded偵測到搖晃停止,但是卻不是這樣的,有機會有motionBegan但是沒有motionEnded,因此需要在motionCancelled中也加入停止播放搖動骰子的音樂。

如果使用模擬器測試,則不會有這現象,如果使用模擬器可以從Simulator的menu點選Hardware>ShakeGesture,或是快速鍵Control–Command–Z,發出搖動。

如果想了解播放音樂,可以參考下面的文章:IOS13APP『Swift5』實例說明—算數練習App(影音篇)【播放音樂】medium.com如果想了解動畫效果,可以參考下面的文章:IOS13APP『Swift5』實例說明—算數練習App(動畫篇)【飄雪動畫效果】medium.com這邊順便說一下亂數產生image時,可以使用forin與randomElement()產生imageView,這樣不論要幾個骰子,都可以快速產生。

@IBOutletvarplayOneDiceImageViews:[UIImageView]!vardeicImageNames=["one","two","three","four","five","six"]forimageViewinplayOneDiceImageViews{imageView.image=UIImage(named:deicImageNames.randomElement()!)}chaoshin/DemoDicesYoucan'tperformthatactionatthistime.Yousignedinwithanothertaborwindow.Yousignedoutinanothertabor…github.com彼得潘的SwiftiOSApp開發教室學習SwiftiOSApp開發的學生作品集6060 claps60彼得潘的SwiftiOSApp開發教室學習SwiftiOSApp開發的學生作品集WrittenbyShinChaoFollow彼得潘的SwiftiOSApp開發教室學習SwiftiOSApp開發的學生作品集


常見生活風格問答