IOS 屏幕截图 UIScrollview

//截图
UIView:截全图

-(UIImage*)captureView:(UIView *)theView{

    CGRect rect = theView.frame;

    if ([theView isKindOfClass:[UIScrollView class]]) {

        rect.size = ((UIScrollView *)theView).contentSize;

    }

	

	UIGraphicsBeginImageContext(rect.size);

	CGContextRef context = UIGraphicsGetCurrentContext();

	[theView.layer renderInContext:context];

	UIImage *img = UIGraphicsGetImageFromCurrentImageContext();

	UIGraphicsEndImageContext();

	return img;

}



UIView:截取部分视图

 

-(UIImage*)imageFromView:(UIView *)theView atFrame:(CGRect)rect

{

    UIGraphicsBeginImageContext(theView.frame.size);

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSaveGState(context);

    UIRectClip(rect);

    [theView.layer renderInContext:context];

    UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return  theImage;

}

UIScrollView:

- (UIImage *)captureScrollView:(UIScrollView *)scrollView{

    UIImage* image = nil;

    UIGraphicsBeginImageContext(scrollView.contentSize);

    {

        CGPoint savedContentOffset = scrollView.contentOffset;

        CGRect savedFrame = scrollView.frame;

        scrollView.contentOffset = CGPointZero;

        scrollView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height);

        

        [scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];

        image = UIGraphicsGetImageFromCurrentImageContext();

        

        scrollView.contentOffset = savedContentOffset;

        scrollView.frame = savedFrame;

    }

    UIGraphicsEndImageContext();

    

    if (image != nil) {

        return image;

    }

    return nil;

}

你可能感兴趣的:(uiscrollview)