fb_license

技術標籤

@selector (1) 初使化區塊 (1) 物件 (1) 物件導向 (2) 型別 (4) 封裝 (1) 流程控制 (1) 陣列 (3) 推論型別 (2) 實機測試 (1) 蓋索林(gasolin) (1) 模組 (1) 憑證 (1) 轉型 (1) 羅康鴻 (121) 類別 (1) 變數 (5) Accelerometer (1) ActiveRecord (1) Activity (1) AFNetworking (1) alloc (1) Android (3) Animation (1) App (1) App ID (1) APP上傳 (1) ASP.NET (1) AVAudioPlayer (1) block (1) C# (2) class (1) CLLocationManager (1) CLLocationManagerDelegate (1) CMMotionManager (4) Controller (1) delegate (1) DELETE語法 (1) Device Motion資料 (1) Dialog (1) DropDownList (1) dynamic language (2) Facebook SDK (9) FBRequest (5) FBRequestConnection (2) FMDB (1) Gesture Recognizers (6) GROUP BY (2) Gyro (1) HAVING (1) IBAction (1) IBOutlet (1) id (3) inheritance (1) init (1) Insert (1) instance variable (1) Interface Builder (1) iOS (70) iOS idea (7) iOS Introduction (1) Layout (1) Magnetometer (1) Menu (2) Method (2) MKMapView (1) MKPointAnnotation (1) MS SQL (5) Nil (1) NSArray (1) NSDictionary (1) NSError (1) NSFileManager & .plist (1) NSMutableArray (1) NSMutableDictionary (1) NSNotificationCenter (1) NULL (1) object (2) Objective-C (16) Objective-C idea (1) ORDER BY (1) Parameter (1) property (1) protocol (2) Provisioning (1) Proximate Sensor (1) Q and A (2) R類別 (1) Rails (9) RESTful SOA (9) Ruby (8) Scene (1) SEELECT (1) Segue (2) SEL (1) SELECT語法 (1) Shake (1) Simulator (1) SOA (8) SQL (6) SQL Server (5) SQL函數 (1) SQL彙總函數 SQL (1) SQLite (1) Storyboard (1) Style (1) Swift (1) Table (1) target & action (1) Theme (1) Toast (1) TRUNCATE TABLE語法 (1) UIActionSheet (1) UIActionSheetDelegate (1) UIActivityIndicatorView (1) UIAlertView (1) UIBarButtonItem (1) UIButton (1) UICollectionView (1) UICollectionViewDataSource (1) UIControl (9) UIDatePicker (1) UIImage (1) UIImagePickerController (2) UIImagePickerControllerDelegate (2) UIImageView (1) UILabel (1) UILongPressGestureRecognizer (1) UINavigationController (2) UIPanGestureRecognizer (1) UIPinchGestureRecognizer (1) UIProgressView (1) UIResponder (1) UIRotationGestureRecognizer (1) UISegmentedControl (1) UISlider (1) UIStepper (1) UISwipeGestureRecognizer (1) UISwitch (1) UITabBarController (1) UITableView (1) UITableViewDataSource (1) UITapGestureRecognizer (1) UITextField (1) UITextFieldDelegate (1) UITextView (2) UITextViewDelegate (1) UIToolBar (1) UIView (8) UIWebView (1) UPDATE語法 (1) var (2) VB.NET (7) View (4) WHERE子句 (1) XML (1)

2014/06/10

[iOS] 加速器


我是加速器,我可以得知iOS的X、Y、Z軸方向的傾斜狀況





iOS傾斜方向值的變化參考圖,其中X軸往右是表示正數、往左是表示負數,Y軸往上是表示正數、往下是表示負數,Z軸表示表示正反面,正面為-1、背面為1


第1步:建立一個名為"Accelerometer"專案。


第2步:設置畫面與IBOutlet
  • 如入6個UILabel標籤,用以表示X、Y、Z軸的標題與值
  • 為表示X、Y、Z值的UILabel標籤設置Outlet,分別是xLabel、yLabel與zLabel



第3步:加入CoreMotion.framework至專案中
  • 選取TARGETS中的預設Target - Accelerometer,選Build Phases後按"+"號
  • 搜尋CoreMotion,在選取framework後按Add



第4步:透過CMotionManager取得加速器資料
  • 於ViewController.h檔中,引用CoreMotion.h
  • 並加入motionManager實體變數,以存放後續取得的CMMotionManager物件
ViewController.h

#import <UIKit/UIKit.h> #import <CoreMotion/CoreMotion.h> @interface ViewController : UIViewController { CMMotionManager *motionManager; } @property (strong, nonatomic) IBOutlet UILabel *xLabel; @property (strong, nonatomic) IBOutlet UILabel *yLabel; @property (strong, nonatomic) IBOutlet UILabel *zLabel; @end
  • ViewController.m檔中的viewDidLoad方法中,透過CMotionManager取得加速器資料
ViewController.m
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //建立CMMotionManager物件 motionManager = [[CMMotionManager alloc] init]; //取得目前的執行緒駐列 NSOperationQueue * queue = [NSOperationQueue currentQueue]; //透過startAccelerometorUpdatesToQueue開始取得XYZ軸的訊息, //參數1帶入queue,以在此執行緒駐列執行取得資料的block, //參數2即為一個block,其中將取得的XYZ資料輸出至xLabel、yLabel與zLabel上顯示 [motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) { CMAcceleration acceleration = accelerometerData.acceleration; self.xLabel.text = [NSString stringWithFormat:@"%f", acceleration.x]; self.yLabel.text = [NSString stringWithFormat:@"%f", acceleration.y]; self.zLabel.text = [NSString stringWithFormat:@"%f", acceleration.z]; }]; }


第5步:執行
  • 以實機執行,數據會不XYZ軸的數據會不斷的更新




檔案連結:Accelerometer.zip