遅すぎるUIViewのスクリーンショット(UIImage)を撮るには、次の方法があります
+ (UIImage *)imageWithView:(UIView *)view
{
CGSize size = view.bounds.size;
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];
UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext()
return image;
}
私のiPadには、ドラッグ&ドロップされたビューのコピーを作成するためにこのメソッドを必要とするアプリがあります。このビューは角が丸いため、不透明ではありません ( isOpaque パラメータを YES に設定しても違いはありません)... また、スクリーンショットされたビューには、かなり複雑なエントリを持つ UITableView が含まれていますそれ...
スクリーンショットの速度を改善する方法について何か提案はありますか? 現在、少し大きいテーブルビュー (おそらく 20 エントリ) の場合、約 1 秒かかります (!!!) ビューは既に画面上にあり、正しくレンダリングされています...したがって、ピクセルを UIImageView に入れるだけで済みます...
iOS 6 以降をサポートする必要があります。