마감일이 곧 있으며 나 앞에서 매우 성가신 버그가 있으며 문제를 해결할 방법이 없습니다. 문제는 때때로 디바이스가 방향이 회전되기 전에되어 무엇을 알고하지 않습니다이고, 그래서 조건문에서 프레임을 망쳐 놨 :시작시 회전 또는 강제하기 전에 장치 방향 가져 오기. 어떤 아이디어?
나는 테이블에 장치를 유지하는 경우이 버그는 쉽게 재현 할 수
if (orient == UIInterfaceOrientationPortrait || orient == 0){
r = CGRectMake(0.0, 0.0, 320.0, 480.0);
// draw stuff
} else {
r = CGRectMake(0.0, 0.0, 480.0, 320.0);
// draw stuff
}
또는 손 (가로 위치)에 놓고 내 응용 프로그램을 실행하면 세로 형식의 화면에 가로 방향의 사각형이 그려집니다.
내 질문은 : 어떻게 든 이런 상황에서 올바른 방향을 얻을 수 있습니까? 너무 나쁜 그것은 시뮬레이터에서 재현 할 수 없기 때문에 붙여 넣은 코드가이 버그를 담당하는지는 확실하지 않지만 그 방향으로 뷰 프레임을 수정하는 곳입니다. 어쩌면 또 다른 (적절한) 방법이 있을까요? 그리고 회전 이벤트가 발생할 때까지 응용 프로그램을 세로 모드로 강제 설정할 수 있습니까?
답변 주셔서 감사합니다. 그러나 아이폰이 "탁자 위에 놓여 있음"을 알 수있는 방법을 알려주십시오. 그리하여 오리엔테이션은 내 응용 프로그램에서 시도 할 때 가로가 아닌 세로가되어야합니다. – sniurkst
음, 이미 내 대답 (z 축의 가속도는 1g + - 조금 :-))입니다. –
UIAccelerometer를 사용하여 휴대 전화가 어떤 위치에 있는지 알려주는 이벤트를 가져와야합니다. – Jason