iPhone手机截屏

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.

- (void)viewDidLoad {

    [super viewDidLoad];

UITestView *testView=[[UITestView alloc] initWithFrame:self.view.bounds];

[self.view addSubview:testView];

[testView release];

//UIView *view = [[self.view subviews] lastObject];//获得某个window的某个subView

    NSInteger index = 0;//用来给保存的png命名

    for (UIView *subView in [self.view subviews]) {//遍历这个view的subViews

        if ([subView isKindOfClass:UITestView.class]) {//找到自己需要的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!");

            }

        }

    }

}

猜你喜欢

转载自374016526.iteye.com/blog/1156933