안녕하세요, 미안 해요.이 경우 초보자라면 둘러 보았지만 수행 방법을 찾지 못했습니다. 기본적으로 나는 아이폰의 가속도계를 사용하여보기를 전환하고 싶습니다. 예를 들어, 아이폰이 떨어지면, 모션은 아이폰이 떨어 졌다는 것을 사용자에게 알려주는 다른 뷰로 전환하도록 트리거합니다. 그것을하는 방법에 대한 도움을 주시면 감사하겠습니다.UIAccelerometer를 사용하여 뷰를 전환하는 중
0
A
답변
2
가속도계는 가속도계 값을 UIAccelerometerDelegate 프로토콜 대리인에게 호출하는 UIAccelerometer 클래스를 사용하여 읽을 수 있습니다. 이는 :
시간 파일 : 귀하의 m 파일에
@interface TestView: UIViewController <UIAccelerometerDelegate> {
UIAccelerometer *accelerometer;
}
@property (nonatomic, retain) UIAccelerometer *accelerometer;
@end
: 당신은 당신이 원하는 무엇이든 할 한계를 선택할 수 있습니다
- (void)viewDidLoad {
[super viewDidLoad];
self.accelerometer = [UIAccelerometer sharedAccelerometer];
self.accelerometer.updateInterval = .1;
self.accelerometer.delegate = self;
}
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
float aX = ABS(acceleration.x);
float aY = ABS(acceleration.y);
float aZ = ABS(acceleration.z);
if(sqrt(aX*aX+aY*aY+aZ*aZ)>THRESHOLD){
//Load new view here
}
}
. 이는 가속 벡터의 길이가 특정 값을 초과 함을 의미합니다. 나는 운동이 없다면이 값은 보통 약 1이고 운동이 있으면 더 높다고 생각합니다. 이 설정을 1.5와 비슷한 것으로 설정하는 것이 좋습니다. 너는 다른 가치를 너 자신 시도 할 수있다.
희망이 도움이됩니다.
관련 문제
- 1. UIAccelerometer를 사용하여 이미지를 이동하는 방법은 무엇입니까?
- 2. UIAccelerometer를 사용하여 x 축에 힘을 적용했습니다.
- 3. UIAccelerometer를 사용하여 이미지를 올바르게 이동하려면 어떻게해야합니까?
- 4. UIAccelerometer를 멈추는 방법?
- 5. 개체의 프로토 타입을 전환하는 중
- 6. MEF를 사용하여 MVVM에서보기를 전환하는 방법
- 7. 로딩 중 뷰를 보는 중 DidFinishLaunchingWithOptions
- 8. 단위 테스트를 위해 NUnit과 MSTest를 전환하는 중
- 9. mod_rewrite를 사용하여 특정 페이지에서 강제 SSL을 전환하는 중 문제가 발생했습니다.
- 10. UIAccelerometer, ViewControllers 및 TabViewController, 탭과 MotionBegan 사이를 전환하는 중
- 11. NSBezierPath를 사용하는 동안 회선 속성을 전환하는 중
- 12. Linq to Entity Framework 모델 - 프로그래밍 방식으로 뷰를 전환하는 방법
- 13. 베타 ajaxcontroltoolkit으로 전환하는 중 문제가 발생했습니다.
- 14. 뷰를 전환하는 도구 모음에서 분할 된 컨트롤을 사용하는 방법?
- 15. UINavigationController를 사용하여 페이지를 전환하는 방법
- 16. 뷰를 사용하여 테이블에 삽입하기
- 17. CGAfffineTransformRotate를 사용하여 뷰를 회전하십시오.
- 18. uitabbarcontroller에서 테이블 뷰를 사용하여
- 19. 수동으로 뷰를 인스턴스화하는 중 ... 검은 색 화면
- 20. 인덱싱 된 뷰를 생성하는 중 오류가 발생했습니다.
- 21. 카운트 백분율을 전환하는 GridView
- 22. , 테이블보기에서 상세보기로 전환하는 방법
- 23. django에서 런타임에 여러 데이터베이스 중 하나의 데이터베이스로 전환하는 방법?
- 24. UIButton을 사용하여 뷰를 변경하는 방법
- 25. popToRootViewController를 사용하여 중간 뷰를 릴리스해야합니까?
- 26. SSIS를 사용하여 뷰를 테이블로 변환
- 27. drupal에서 패널을 사용하여 뷰를 설정하십시오.
- 28. jQuery, java 스크립트를 사용하여 탭간에 전환하는 방법?
- 29. Java에서 스크롤 뷰를 사용하여 뷰를 스크롤하지 않도록 설정하는 방법
- 30. ObservableCollection을 여러 개 사용하여 뷰를 바인딩하는 방법
감사합니다. 프로젝트가 아무런 문제없이 빌드되고 실행되지만 가속도계가 트리거되어보기를 변경하려고하면 충돌이 발생합니다. 내가받을 오류 메시지는 다음과 같습니다. *** 캐치되지 않은 예외로 인해 응용 프로그램 종료 중 'NSInternalInconsistencyException', 이유 : '전환이 이미 진행 중일 때에서 (으)로 모달 전환을 시작하려고합니다. . ViewDidAppear/viewDidDisAppear가 현재 전환이 완료되었음을 알리기를 기다립니다. 다시 한 번 감사합니다. –
새로운보기를로드하기 위해 작성한 코드가 맞는지 확실하지 않습니다. 아마도 이것이 문제입니까? 'SecondViewController * screen = [[SecondViewController alloc] initWithNibName : nil 번들 : nil]; \t \t screen.modalTransitionStyle = UIModalTransitionStyleCoverVertical; \t \t [self presentModalViewController : screen animated : YES]; \t \t [화면 해제]; ' –
코드가 정상적으로 작동하는 것 같습니다. 현재 전환이 실행되는 동안 전환을 시작하려고하기 때문에 오류가 발생합니다. 아이폰을 약간 움직일 때마다 "가속도계 : didAccelerate"기능이 호출된다는 것을 잊지 마십시오. 이것에 대한 한가지 해결책은 if 문 다음에 다음 줄을 실행하는 것입니다 :'self.accelerometer.delegate = nil;'이렇게하면 나중에 함수가 호출되는 것을 막을 수 있습니다. 희망이 도움이! – Tovi7