1

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 メソッドについてここで提案していないことです。

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW217

クラシックを使用する場合

 [view.layer renderInContext:UIGraphicsGetCurrentContext()];

すべてが期待どおりに機能しますが、もちろん、これはすでにわかっていました。

を試しても成功しない

- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates
4

0 に答える 0