동적 장치 방향을 지원하는 OpenGL 앱이 있습니다. 장치를 4 가지 방향 중 하나로 회전시킬 수 있으며 모든 것이 예상대로 작동합니다.모달 뷰 컨트롤러를 표시하는 동안 장치 회전
이제 모달 뷰 컨트롤러를 추가하여 설정보기를 얻을 수 있습니다 (비 OpenGL 임). 모달 뷰 컨트롤러는 모든 장치 방향도 지원합니다.
그러나 모달 뷰 컨트롤러를 오리엔테이션 A (예 : 세로)로 표시하고 오리엔테이션 B (예 : 가로 - 오른쪽)로 표시를 해제 한 경우, 축소 된 후 OpenGL보기가 손상됩니다 (가로 세로 비율이 잘못 보입니다) . OpenGL보기가 자체를 '수정'하기 위해 장치를 다른 방향으로 배치해야합니다.
모달 뷰 컨트롤러가 닫히면 앱이 이미 방향 B에 있다고 생각하는 것처럼 보이므로 OpenGL보기를 회전시키지 않습니다.
모달 뷰 컨트롤러에서 회전을 비활성화 한 경우 모달 컨트롤러를 방향 A로 표시하면 장치가 방향 B (모달 뷰 컨트롤러가 더 이상 회전하지 않음)로 회전하고 컨트롤러를 닫을 때 OpenGL보기는 willRotateToInterfaceOrientation/didRotateFromInterfaceOrientation 방향 B 올바르게 방향을 지정하십시오.
모달 컨트롤러의 동적 방향을 유지하면서 모달 컨트롤러를 닫은 후에도 OpenGL보기도 제대로 회전 할 수 있습니까?
감사합니다.
OpenGL보기를 업데이트하기 위해 회전 변경을 감지하는 데 사용하는 메커니즘은 무엇입니까? 프레임을 조정할 수있는 OpenGL보기의 프레젠테이션을 관리하는 것은 무엇입니까? – Jonah
OpenGL 뷰 컨트롤러의 shouldAutorotateToInterfaceOrientation은 YES를 반환합니다. willRotateToInterfaceOrientation은 OpenGL 뷰 컨트롤러에서 호출됩니다. layoutSubviews는 OpenGL 버퍼를 해제하는 OpenGL보기에서 호출됩니다. 다음 번에 렌더 함수가 호출되면 OpenGL 버퍼가 스왑 된 너비/높이로 다시 생성됩니다. – iraxef
모달을 세로로 고정했을 때 어떻게 작동 시켰습니까? 나는 그와 똑같은 문제를 안고있다 – jfisk