UIViewスナップショットを作成するためにこのメソッドがあると思われます
+ (UIImage *)screenshotWithView:(UIView *)view {
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0f);
if( [view respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)] ) { // LP: iOS 7 only
[view drawViewHierarchyInRect:view.bounds
afterScreenUpdates:[view superview]?NO:YES];
} else {
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
}
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
このメソッドを一度に実行するときは、次のように言いましょう
runTimer = [NSTimer scheduledTimerWithTimeInterval: 1.0f/30
target:self
selector:@selector(sendScreen)
userInfo:nil
repeats:repeat];
アプリはますます遅くなります。UI はフリーズせず、スナップショットは取得されますが、パフォーマンスが大幅に低下します。
これはまさに、Apple が iOS7 の新しい UI メソッドについてここで提案していないことです。
クラシックを使用する場合
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
すべてが期待どおりに機能しますが、もちろん、これはすでにわかっていました。
を試しても成功しない
- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates