Airplay または HDMI アダプターを使用して、iOS アプリを大画面で実演したいと考えています。
問題は、私のアプリが縦向きモードでしか実行されず、ほとんどのテレビが 16:9 の縦横比であるため、iPhone の画面が非常に小さいことです。これを修正するには、テレビを回転させ、iPhone の出力を回転させてディスプレイを大きくしたいと考えています。
iOS6 では CADisplayLink を使用し、現在の画面のスナップショットを取り、それを外部画面に描画しました。残念ながら、古いコードは iOS 7 では機能しなくなり、動作が遅くなりました。これに適したフレームワークはありますか?
フレームワークの提案がない場合は、これをより効率的にするのを手伝ってもらえますか?
私のコードは現在次のようになっています。
- (UIImage *) screenshot {
UIView* view = [[UIScreen mainScreen] snapshotViewAfterScreenUpdates:YES];
UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, [UIScreen mainScreen].scale);
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
- (void)drawFrame
{
UIImageView* contentView = (UIImageView *)[self.secondWindow.rootViewController.view viewWithTag:[@"contentView" hash]];
CGImageRef screenImg = [self screenshot].CGImage;//UIGetScreenImage();
contentView.image = [UIImage imageWithCGImage:screenImg scale:1.0 orientation:UIImageOrientationLeft];
}