iPhone開發應用 代碼實現截屏功能是本文要介紹的內容,主要是以代碼來講解內容,不多說,我們先來看代碼實現。
iPhone 使用者同步選取 Home 和鎖屏鍵就能截屏,但在應用裡總不能跳出一行字讓使用者自己按截屏鍵。CocoaChina 會員 “bobgreen” 分享的這段代碼能實現程式內截屏功能,支援 iPhone 4 Retina 高分屏。
- UIView *view = [[[[[UIApplication sharedApplication] windows] objectAtIndex:1] subviews] lastObject];//獲得某個window的某個subView
-
- NSInteger index = 0;//用來給儲存的png命名
- for (UIView *subView in [view subviews]) {//遍曆這個view的subViews
- if ([subView isKindOfClass:NSClassFromString(@"UIImageView")] || [subView isKindOfClass:NSClassFromString(@"UIThreePartButton")])
- {//找到自己需要的subView
- //支援retina高分的關鍵
- if(UIGraphicsBeginImageContextWithOptions != NULL)
- {
- UIGraphicsBeginImageContextWithOptions(subView.frame.size, NO, 0.0);
- } else {
- UIGraphicsBeginImageContext(subView.frame.size);
- }
-
- //擷取映像
- [subView.layer renderInContext:UIGraphicsGetCurrentContext()];
- UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
-
- //儲存映像
- NSString *path = [NSHomeDirectory() stringByAppendingFormat:@"/%d.png",index];
- if ([UIImagePNGRepresentation(image) writeToFile:path atomically:YES]) {
- index += 1;
- NSLog(@"Succeeded!");
- }
- else {
- NSLog(@"Failed!");
- }
- }
- }
小結:iPhone開發應用 代碼實現截屏功能的內容介紹完了,希望本文對你有所協助。