내 비디오 (AVPlayer 인스턴스)가 작은 "최소화 된"창에서 재생되어 시작됩니다. 화면을 터치하여 컨트롤을 표시하고 사용자가 상태 표시 줄을 포함하는 전체 화면으로 확장하도록 허용합니다. 나는 그것의 전체 프레임에 대한의 ViewController이주는거야 :UIStatusBar + 전체 프레임 비디오 전환 + 회전 = 프레임 문제
[[UIScreen mainScreen] bounds]
그러나의 ViewController는 여전히 상태 표시 줄은 내가 먼저 그것을 숨길 경우에도이 생각 :
이[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]
그래서 비디오 화면 아래 시작 보이지 않는 상태 표시 줄, (0, statusBarHeight). 컨트롤이 표시된 상태로 장치를 회전하면 (상태 표시 줄이 보이게 됨) 문제가 남아 있습니다. 컨트롤이 숨겨져 있고 상태 표시 줄이 없을 때 장치를 회전하면 모든 것이 자체적으로 수정되고 비디오 창은 예상대로 (0,0)에서 시작됩니다.
내 솔루션은 (0, -statusBarHeight)에서 전체 화면 비디오 창을 시작한 다음 컨트롤이없는 회전을 관찰하여 비디오 창을 원점으로 되돌릴 수 있습니다. 왝.
비디오를 원래 크기로 최소화하면 컨트롤이없는 회전이있는 경우 비디오 창이 (statusBarHeight) 픽셀만큼 너무 높습니다.
비디오를 최소화 할 때, (0, + statusBarHeight)에 의해 "실제"위치를 수정해야하는 경우이를 알려주는 또 다른 부울 값입니다. 두배.
이 시점에서 장치를 회전하면 모든 것이 잘됩니다. 그러나 비디오를 즉시 최대화하면 전체 화면 비디오가 (statusBarHeight) 픽셀만큼 너무 높습니다. 트리플!!
좋아, 더 많은 불법이지만 비디오 엔진은 별도의 프레임 워크이고 '제어 앱'에도 비슷한 문제가 있습니다.
내가 잘못 생각하고 있습니까? 그것은 너무 복잡하고 허약합니다. 나는 이것이 공통적 인 문제라는 것을 알고있다. (나는 야생에서 다른 애플 리케이션을 들여다 본다.) 나는 똑같은 행동을 보이는 애플 리케이션 목록을 가지고있다. 더 좋은 방법이 있습니까?