iPhone開(kāi)發(fā)應(yīng)用 代碼實(shí)現(xiàn)截屏功能
iPhone開(kāi)發(fā)應(yīng)用 代碼實(shí)現(xiàn)截屏功能是本文要介紹的內(nèi)容,主要是以代碼來(lái)講解內(nèi)容,不多說(shuō),我們先來(lái)看代碼實(shí)現(xiàn)。
iPhone 用戶同時(shí)按下 Home 和鎖屏鍵就能截屏,但在應(yīng)用里總不能跳出一行字讓用戶自己按截屏鍵。CocoaChina 會(huì)員 “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;//用來(lái)給保存的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開(kāi)發(fā)應(yīng)用 代碼實(shí)現(xiàn)截屏功能的內(nèi)容介紹完了,希望本文對(duì)你有所幫助。