ios开发——实用技术篇Swift篇&加速计和陀螺仪

加速计和陀螺仪

  1     //返回按钮事件
  2     @IBAction func backButtonClick()
  3     {
  4         self.navigationController?.popViewControllerAnimated(true)
  5     }
  6
  7
  8     @IBOutlet var xLabel:UILabel!
  9     @IBOutlet var yLabel:UILabel!
 10     @IBOutlet var zLabel:UILabel!
 11
 12     @IBOutlet var orientationLabel:UILabel!
 13
 14     //加速计管理者-所有的操作都会由这个motionManager接管
 15     var motionManager:CMMotionManager!
 16
 17     override func viewDidLoad() {
 18         super.viewDidLoad()
 19
 20         titleLabel.text = titleString
 21
 22
 23
 24         //------ CoreMotion 加速计
 25         motionManager = CMMotionManager()//注意CMMotionManager不是单例
 26         motionManager.accelerometerUpdateInterval = 0.1//设置读取时间间隔
 27
 28         if motionManager.accelerometerAvailable//判断是否可以使用加速度计
 29         {
 30             //获取主线程并发队列,在主线程里跟新UI
 31             motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: { (var accelerometerData:CMAccelerometerData?, var error:NSError?) -> Void in
 32
 33                 if error != nil
 34                 {
 35                     self.motionManager.stopAccelerometerUpdates()//停止使用加速度计
 36                 }else
 37                 {
 38
 39                     self.xLabel.text = "x:\(accelerometerData!.acceleration.x)"
 40                     self.yLabel.text = "Y:\(accelerometerData!.acceleration.y)"
 41                     self.zLabel.text = "Z:\(accelerometerData!.acceleration.z)"
 42                 }
 43             })
 44
 45
 46         }else
 47         {
 48             let aler = UIAlertView(title: "您的设备不支持加速计", message: nil, delegate: nil, cancelButtonTitle: "OK")
 49             aler.show()
 50         }
 51
 52
 53
 54         //感知设备方向-开启监听设备方向
 55         UIDevice.currentDevice().beginGeneratingDeviceOrientationNotifications()
 56
 57         //添加通知,监听设备方向改变
 58         NSNotificationCenter.defaultCenter().addObserver(self, selector: "receivedRotation", name: UIDeviceOrientationDidChangeNotification, object: nil)
 59
 60         //关闭监听设备方向
 61         UIDevice.currentDevice().endGeneratingDeviceOrientationNotifications()
 62     }
 63
 64     override func didReceiveMemoryWarning() {
 65         super.didReceiveMemoryWarning()
 66         // Dispose of any resources that can be recreated.
 67     }
 68
 69
 70     // MARK: - 判断设备方向代理方法
 71     func receivedRotation()
 72     {
 73         var device = UIDevice.currentDevice()
 74
 75         if device.orientation == UIDeviceOrientation.Unknown
 76         {
 77             orientationLabel.text = "Unknown"
 78         }
 79         else if device.orientation == UIDeviceOrientation.Portrait
 80         {
 81             orientationLabel.text = "Portrait"
 82         }
 83         else if device.orientation == UIDeviceOrientation.PortraitUpsideDown
 84         {
 85              orientationLabel.text = "PortraitUpsideDown"
 86         }
 87         else if device.orientation == UIDeviceOrientation.LandscapeLeft
 88         {
 89              orientationLabel.text = "LandscapeLeft"
 90         }
 91         else if device.orientation == UIDeviceOrientation.LandscapeRight
 92         {
 93              orientationLabel.text = "LandscapeRight"
 94         }else if device.orientation == UIDeviceOrientation.FaceUp
 95         {
 96              orientationLabel.text = "FaceUp"
 97         }
 98         else  if device.orientation == UIDeviceOrientation.FaceDown
 99         {
100              orientationLabel.text = "FaceDown"
101         }
102     }
103
104     // MARK: - 摇晃事件
105     override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent) {
106
107         println("motionBegan")//开始摇晃
108     }
109
110     override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) {
111         println("motionEnded")//摇晃结束
112     }
113
114
115     override func motionCancelled(motion: UIEventSubtype, withEvent event: UIEvent) {
116         println("motionCancelled")//摇晃被意外终止
117     }
时间: 2024-12-09 17:00:18

ios开发——实用技术篇Swift篇&加速计和陀螺仪的相关文章

ios开发——实用技术篇Swift篇&地址薄、短信、邮件

1 //返回按钮事件 2 @IBAction func backButtonClick() 3 { 4 self.navigationController?.popViewControllerAnimated(true) 5 } 6 7 //新增联系人 8 @IBAction func addPeople () 9 { 10 //取得电话薄句柄 11 var error:Unmanaged<CFError>? 12 var addressBook: ABAddressBookRef? = AB

ios开发——实用技术篇Swift篇&amp;播放MP3

播放MP3 1 // MARK: - 播放MP3 2 /*----- mp3 ------*/ 3 //定时器- 4 func updateTime() 5 { 6 //获取音频播放器播放的进度,单位秒 7 var cuTime:Float = Float(audioPlayer.currentTime) 8 9 //更新进度条 10 jinDuSlider.value = cuTime 11 12 //获取总时间 13 var duTime:Float = Float(audioPlayer.

ios开发——实用技术篇Swift篇&amp;多点触摸与手势识别

多点触摸与手势识别 1 2 //点击事件 3 var atap = UITapGestureRecognizer(target: self, action: "tapDo:") 4 self.view.addGestureRecognizer(atap) 5 atap.numberOfTapsRequired = 1 //单击次数 6 atap.numberOfTouchesRequired = 1 //手指个数 7 8 //拖动事件 9 var aPan = UIPanGesture

ios开发——实用技术篇Swift篇&amp;系统声音

系统声音 1 // MARK: - 系统声音 2 /*----- 系统声音 ------*/ 3 @IBAction func systemSound() 4 { 5 //建立的SystemSoundID对象 6 var soundID: SystemSoundID = 0 7 8 //获取声音文件地址 9 var path = NSBundle.mainBundle().pathForResource("SaoMa", ofType: "wav") 10 11 /

ios开发——实用技术篇Swift篇&amp;录音

录音 1 // MARK: - 录音 2 /*----- 录音 ------*/ 3 4 var recorder:AVAudioRecorder? //录音器 5 var player:AVAudioPlayer? //播放器 6 var recorderSettingsDic:[NSObject : AnyObject]? //录音器设置参数数组 7 var volumeTimer:NSTimer!//定时器线程, 刷新音量 8 var aacPath:String? //录音存储路径 9

ios开发——实用技术篇Swift篇&amp;照片选择

照片选择 1 // MARK: - 选择照片 2 /*----- 选择照片 ------*/ 3 @IBAction func addImageButtonClick() 4 { 5 let actionSheet = UIActionSheet(title: "请选择", delegate: self, cancelButtonTitle: "取消", destructiveButtonTitle: nil, otherButtonTitles: "从相

ios开发——实用技术篇Swift篇&amp;视频

视频 1 // MARK: - 播放视频 2 /*----- 播放视频 ------*/ 3 4 5 func moviePlayerPreloadFinish(notification:NSNotification) 6 { 7 println("播放完毕") 8 } 9 10 //声明一个媒体播放器 11 var moviePlayer:MPMoviePlayerController? 12 13 @IBAction func playMV() 14 { 15 let filePa

ios开发——实用技术篇Swift篇&amp;拍照

拍照 1 // MARK: - 拍照 2 func fromPhotograph() 3 { 4 if UIImagePickerController.isSourceTypeAvailable(.Camera) 5 { 6 //创建图片控制器 7 let picker = UIImagePickerController() 8 9 //设置代理 10 picker.delegate = self 11 12 //设置来源 13 picker.sourceType = UIImagePicker

ios开发——实用技术篇OC篇&amp;iOS的主要框架

iOS的主要框架         阅读目录 Foundation框架为所有的应用程序提供基本系统服务 UIKit框架提供创建基于触摸用户界面的类 Core Data框架管着理应用程序数据模型 Core Graphics框架帮助你创建图形 Core Animation允许你创建高级的动画和虚拟效果 OpenGL ES 框架提供2D和3D绘图工具 将别的框架添加到工程里 本文是<Sunvey the Major Framworks>一文的翻译 框架是一个目录,这个目录包含了共享库,访问共享库里代码