1

アプリでビュー (テーブル ビュー) のスクリーンショットを撮ろうとしています。これは私がこれを行うために使用するコードです:

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
    UIGraphicsBeginImageContextWithOptions(self.tableView.frame.size, NO, [UIScreen mainScreen].scale); //retina display
else
    UIGraphicsBeginImageContext(self.tableView.frame.size);
[self.tableView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

これは機能しますが、テーブル ビューが一番上までスクロールされている場合にのみ、そうでない場合は画像が黒くなります。私が見つけた唯一の解決策は、テーブル ビュー全体をキャプチャすることです。目に見える部分だけが必要です。どうすればいいですか?

4

1 に答える 1

3

self.tableView.layer を self.tableView.superview.layer に変更することで解決しました。

于 2013-07-10T06:55:51.793 に答える