iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 22
0
Software Development

30天Swift入門學習系列 第 22

iOS App 實作(17) Shake Detect


Description:
這demo是透過偵測手機搖動來更換圖片及震動手機。
iOS 在 UIResponder interface 中提供了三個有關 Motion detected funciton(motionBegan、motionEnded、motionCancelled) 來給開發者使用。此 demo 是在晃動手勢結束後更換圖片並震動裝置。


Component:

  1. UIImageView

Highlight function:

  1. 宣告用來存放圖片之陣列並完成隨機顯示圖片功能之 funciton,將隨機顯示圖片功能加入motionEnded()即可完成晃動手勢結束後更換圖片。
let imgArray = ["01.jpg", "02.jpg", "03.jpg", "04.jpg", "05.jpg", "06.jpg"]

override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
  updateImage()
}
  
func updateImage() {
  var randIndex = Int(arc4random_uniform(6))
  imgView.image = UIImage(named: imgArray[randIndex])
}
  1. 發出震動需透過 AudioToolbox framework 中的 System Sound Services interface 來完成。
    使用 kSystemSoundID_Vibrate 此 SystemSoundID 即可做到震動效果。
import AudioToolbox

override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
  AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate)) 
}

Reference:
Source code on Github


上一篇
iOS App 實作(16) Side-in Menu
下一篇
Swift Retain Cycle
系列文
30天Swift入門學習30

尚未有邦友留言

立即登入留言