每當**iOS**
應用程序轉到後臺時,系統會拍攝快照以將其呈現在多任務切換器中。有沒有機會獲得這個截圖?我知道它對應於上面的窗口,這可能從當拍攝背景時拍攝iOS拍攝的快照
- (void)applicationDidEnterBackground:(UIApplication *)application
編輯,但結果不是預期,並想知道究竟是iOS的快照。
每當**iOS**
應用程序轉到後臺時,系統會拍攝快照以將其呈現在多任務切換器中。有沒有機會獲得這個截圖?我知道它對應於上面的窗口,這可能從當拍攝背景時拍攝iOS拍攝的快照
- (void)applicationDidEnterBackground:(UIApplication *)application
編輯,但結果不是預期,並想知道究竟是iOS的快照。
使用此代碼來捕獲快照:
#import <QuartzCore/QuartzCore.h>
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.window.bounds.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(self.window.bounds.size);
[self.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData * imgData = UIImagePNGRepresentation(image);
if(imgData)
[imgData writeToFile:@"screenshot.png" atomically:YES];
else
NSLog(@"error while taking screenshot");
Thanks @prince我應該在哪裏放置這段代碼?在'applicationDidEnterBackground:'結尾處? – Matias
是的,你可以試試它。 –
您可以在UIWindow實例上使用更新的'drawViewHierarchyInRect:afterScreenUpdates:'而不是'renderInContext',並且可能會獲得更好的結果! –
在App Programming Guide適用於iOS,蘋果說:
遮擋/更換敏感信息,你可能也想告訴的iOS 7不採取屏幕快照通過ignoreSnapshotOnNextApplicationLaunch。根據此方法的documentation:
希望這會有所幫助。
我確實想要拍攝一張照片,所以我不想隱藏它。 – Matias
你想用捕獲的屏幕截圖做什麼?因爲我知道你可以忽略iOS採取和使用以下方法'ignoreSnapshotOnNextApplicationLaunch'使用屏幕截圖 –
@KetanP我正在顯示一個啓動畫面,並且在某些情況下不會顯示啓動畫面。我想知道那一刻正在做什麼截圖。 – Matias
您可以使用方法'ignoreSnapshotOnNextApplicationLaunch'鏈接忽略屏幕快照:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/index.html#//apple_ref/doc/uid/TP40006728- CH3-SW126 –