IOS给任意UIView截屏

简介: IOS给任意UIView截屏
//获得某个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!");
}
}
}
相关文章
|
Go iOS开发
iOS使用xib自定义uiview
iOS使用xib自定义uiview
368 0
iOS使用xib自定义uiview
|
存储 API iOS开发
iOS UIView动画效果
iOS UIView动画效果
|
程序员 API iOS开发
iOS UIView添加快捷手势回调
iOS UIView添加快捷手势回调
|
iOS开发
iOS开发之指定UIView的某几个角(小于4)为圆角
在iOS开发中,我们经常会遇到View设置圆角的问题,如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可(项目需要使用QuartzCore框架)。而若要指定某几个角(小于4)为圆角而别的不变时,这种方法就不好用了。
iOS开发之指定UIView的某几个角(小于4)为圆角
|
iOS开发
iOS动画开发之三——UIView的转场切换
iOS动画开发之三——UIView的转场切换
379 0
|
iOS开发
iOS动画开发之二——UIView动画执行的另一种方式
iOS动画开发之二——UIView动画执行的另一种方式
125 0
|
iOS开发
iOS开发之UIView与UIViewController的生命周期总结
iOS开发中,创建View常见的两种方式一个是纯代码,一个是借助于XIB;创建ViewController常见的也有两种方式一个是纯代码,一个是借助于StoryBoard。
1269 0
|
iOS开发
iOS 开发之指定 UIView 的某几个角为圆角
如果需要将 UIView 的 4 个角全部都为圆角,做法相当简单,只需设置其 Layer的 cornerRadius 属性即可(项目需要使用QuartzCore框架)。
1997 0