当前位置:编程学习 > wap >>

IOS给任意UIView截屏

[cpp] 
//获得某个window的某个subView  
UIView *view = [[[[[UIApplication sharedApplication] windows] objectAtIndex:0] subviews] lastObject];  
  
NSInteger index = 0;//用来给保存的png命名  
for (UIView *subView in [view subviews]) {//遍历这个view的subViews  
if ([subView isKindOfClass:NSClassFromString(@"MKMapView")]) {//找到自己需要的subView  
NSLog(@"fund");  
//支持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! %@",path);  
}  
else {  
NSLog(@"Failed!");  
}  
}  
}  
 
补充:移动开发 , IOS ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,