iPhone應(yīng)用程序 實(shí)現(xiàn)截屏功能
iPhone應(yīng)用程序 實(shí)現(xiàn)截屏功能是本文要介紹的內(nèi)容,當(dāng)iPhone 用戶同時(shí)按下 Home 和鎖屏鍵就能截屏,但在應(yīng)用里總不能跳出一行字讓用戶自己按截屏鍵。CocoaChina 會員 “bobgreen” 分享的這段代碼能實(shí)現(xiàn)程序內(nèi)截屏功能,支持 iPhone 4 Retina 高分屏。
- UIView *view = [[[[[UIApplication sharedApplication] windows] objectAtIndex:1] subviews] lastObject];//獲得某個(gè)window的某個(gè)subView
- NSInteger index = 0;//用來給保存的png命名
- for (UIView *subView in [view subviews]) {//遍歷這個(gè)view的subViews
- if ([subView isKindOfClass:NSClassFromString(@"UIImageView")] || [subView isKindOfClass:NSClassFromString(@"UIThreePartButton")])
- {//找到自己需要的subView
- //支持retina高分的關(guān)鍵
- 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!");
- }
- }
- }
小結(jié):iPhone應(yīng)用程序 實(shí)現(xiàn)截屏功能的內(nèi)容介紹完了,內(nèi)容很少,基本是代碼實(shí)現(xiàn)的,是不是很有趣的一個(gè)實(shí)例,最后希望本文對你有所幫助。
本文來自:http://www.cocoachina.com/iphonedev/sdk/2011/0323/2731.html