UIAccelerotmeterDelegate
메소드 accelerometer:didAccelerate:
을 사용하고 있지만 최근에는 해당 메소드가 iOS 5.0에서 사용되지 않습니다. 그렇다면 가속도계 데이터를 얻는 다른 방법은 무엇입니까? 이 문서에는 우리가 사용해야하는 대안이 언급되어 있지 않습니다.IOS에서 가속도계 데이터를 얻는 방법?
11
A
답변
13
대체로 iOS 4.0에 도입 된 Core Motion framework을 사용해야합니다. CMMotionManager
의 인스턴스를 만들고 startAccelerometerUpdatesToQueue:withHandler:
으로 전달하고 NSOperationQueue
및 새 가속도계 데이터를 사용할 수있을 때마다 지정된 대기열에서 실행될 블록을 전달하십시오.
5
UIAccelerometer와 UIAccelerometerDelegate가 CoreMotion 프레임 워크로 대체 된 것 같습니다.
여기에서 답을 찾을 수 있습니다
Why is accelerometer:didAccelerate: deprecated in IOS5?
나는 그것이 도움이되기를 바랍니다.
3
CoreMotion
으로 대체됩니다. Motion Events을 참조하십시오.
4
여기 CoreMotion에서 찾은 유용한 샘플 코드는 this 링크입니다.
@interface ViewController()
@property (nonatomic, strong) CMMotionManager *motionManager;
@property (nonatomic, strong) IBOutlet UILabel *xAxis;
@property (nonatomic, strong) IBOutlet UILabel *yAxis;
@property (nonatomic, strong) IBOutlet UILabel *zAxis;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.motionManager = [[CMMotionManager alloc] init];
self.motionManager.accelerometerUpdateInterval = 1;
if ([self.motionManager isAccelerometerAvailable])
{
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[self.motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
self.xAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.x];
self.yAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.y];
self.zAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.z];
});
}];
} else
NSLog(@"not active");
}
@end
1
먼저 CoreMotion 프레임 워크를 프로젝트에 추가하십시오. 그 다음 :
#import <CoreMotion/CoreMotion.h>
@property (strong, nonatomic) CMMotionManager *motionManager;
- (void)viewDidLoad {
_motionManager = [CMMotionManager new];
_motionManager.accelerometerUpdateInterval = 0.01; // 0.01 = 1s/100 = 100Hz
if ([_motionManager isAccelerometerAvailable])
{
NSOperationQueue *queue = [NSOperationQueue new];
[_motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error){
NSLog(@"X = %0.4f, Y = %.04f, Z = %.04f",
accelerometerData.acceleration.x,
accelerometerData.acceleration.y,
accelerometerData.acceleration.z);
}];
}
}
관련 문제
- 1. 가속도계 데이터에서 선형 가속을 얻는 방법
- 2. Android에서 서비스의 가속도계 데이터를 읽는 방법
- 3. ios에서 정확한 타이머를 얻는 방법
- 4. iOS에서 시스템 아이콘을 얻는 방법
- 5. iOS에서 갤러리 이미지를 얻는 방법?
- 6. iOS에서 신호 막대를 얻는 방법
- 7. iOS에서 터치 크기를 얻는 방법?
- 8. iOS에서 이미지로 데이터를 변환하는 방법
- 9. 가속도계 iOS에서 누락 된 데이터 점 (목표 C)
- 10. Blippy가 데이터를 얻는 방법
- 11. 카메라 데이터를 얻는 방법
- 12. 관계 데이터를 얻는 방법?
- 13. URL에서 데이터를 얻는 방법
- 14. iOS에서 절대 이미지 위치를 얻는 방법?
- 15. iOS에서 발신자 세부 정보를 얻는 방법
- 16. IOS에서 사용 가능한 메모리를 얻는 방법?
- 17. IOS에서 uiwebview의 제출 버튼에서 동작을 얻는 방법
- 18. iOS에서 시계 알람 정보를 얻는 방법
- 19. iOS에서 실행중인 활성 프로세스를 얻는 방법
- 20. IOS에서 응용 프로그램의 고유 식별자를 얻는 방법
- 21. iOS에서 음악의 아티스트, 앨범 등을 얻는 방법
- 22. uiwebview from ios에서 이미지를 얻는 방법
- 23. box2d 가속도계 작동 방법
- 24. iOS에서 NSString으로 오디오 데이터를 변환하는 방법?
- 25. Lenovo ThinkPad 가속도계 사용
- 26. 백그라운드 또는 슬립 모드에서 가속도계 데이터를 샘플링하는 방법
- 27. 가속도계, CMMotion 데이터를 사용하여 3D 공간에서 점을 찾는 방법?
- 28. 휴대 전화가 유휴 상태 일 때 가속도계 데이터를 수집하는 방법
- 29. Matlab을 사용하여 가속도계 데이터를 속도와 위치로 통합
- 30. 코어 플롯에서 가속도계 데이터를 사용하여 그래프 그리기