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/15

[iOS] 磁力儀


我是磁力儀,我可以得知iOS的X、Y、Z軸的磁感應強度





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


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


第3步:加入CoreMotion.framework至專案中
  • 選取TARGETS中的預設Target - Magnetometer,選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]; //建立CMMotionManager物件 motionManager = [[CMMotionManager alloc] init]; //取得目前的執行緒駐列 NSOperationQueue * queue = [NSOperationQueue currentQueue]; //透過startMagnetometerUpdatesToQueue開始取得XYZ軸的磁力感應強度, //參數1帶入queue,以在此執行緒駐列執行取得資料的block, //參數2即為一個block,其中將取得的XYZ軸的磁力感應強度資料輸出至xLabel、yLabel與zLabel上顯示 [motionManager startMagnetometerUpdatesToQueue:queue withHandler:^(CMMagnetometerData *magnetometerData, NSError *error) { self.xLabel.text = [NSString stringWithFormat:@"%f", magnetometerData.magneticField.x]; self.yLabel.text = [NSString stringWithFormat:@"%f", magnetometerData.magneticField.y]; self.zLabel.text = [NSString stringWithFormat:@"%f", magnetometerData.magneticField.z]; }]; }


第5步:執行
  • 以實機執行,數據會顯示XYZ軸的磁力感應強度,其單位為micro tesla




檔案連結:Magnetometer.zip