IOS는 다중 뷰를 지원한다. 약간 병신같지만....
[ [ UIScreen screens ] count ]가 현재 하드웨어로 표시할 수 있는 스크린의 개수이다.
당연히 NSArray이고, UIScreen screens의 0번째가 ipad 혹은 iphone의 화면, 1이 다른 출력장치의 화면이다.
근데 이 병맛같은것이...기본적으로 Mirroing..즉 같은 화면을 보여주게는 안된다. 참...병신같아.
이것저것 해보니, Mirroring을 하려면 기본적으로 Mirroring을 하고자 하는 UIWindow와 똑같이 생긴 UIWindow가 하나 더 있어야 한다. 근데 UIWindow자체가 엄청 크거나(그럴일은 없겠지만...), 혹은 UIWindow에 추가되는 UIView의 크기가 크면, 메모리가 제한적인 IOS에서는 상당히 비효율일 것이다.
그래서 ipad에 보이는 화면 자체를 스크린샷처럼 떠서, 보여주는 것이다. 그러면 각종 animation들이 부드럽지는 않겠지만, 기본적인 역할에는 충실할 것이다.
소스코드가 여기 있다.
TVOutManager.zip
사용방법은 간단하다.
헤더파일을 추가하고, import시킨 후, [ [ TVOutManager sharedInstance ] startTVOut ]; 을 호출해주면 된다.
stopTVOut도 있으며, 소스파일을 보면, notification이 추가되어 있으므로, 원하는 시점에 자동연결하거나 자동끊김을 원하면 해당 부분을 수정하면 될 것이다.
댓글 없음:
댓글 쓰기