スクリーンショットを振って、テストの福祉をあげます.

1375 ワード

会社は反応をテストして、时には问题が现れてスクリーンショットに间に合いません..だから揺れのスクリーンショットを書きます
メソッドはUIViewControllerの分類に書かれており、呼び出す必要がなく、すぐに有効になります.
#import "UIViewController+ShakeAndCutter.h"

@implementation UIViewController (ShakeAndCutter)

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    [self snapshot];
}


- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    NSLog(@"End");
}

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event{
    NSLog(@"Cancel");
}


- (void)snapshot
{
    // 1.  [ , ]
    UIGraphicsBeginImageContext(self.view.bounds.size);
    
    // 2.  
    CGContextRef context = UIGraphicsGetCurrentContext();
    
    // 3.  
    [self.view.layer renderInContext:context];
    
    // 4.  
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    
    // 5.  
    UIGraphicsEndImageContext();
    
    // 6.  
    UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}

#pragma mark  [ ]
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
    if (error) {
        NSLog(@"error-%@", error.localizedDescription);
    }else{
        NSLog(@" ");
    }
}

注意:plistにPrivacy-Photo Library Usage Descriptionのアルバムへのアクセス注意を追加する