• 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;
    }
  • 相关阅读:
    1040 Longest Symmetric String (25)
    1068 Find More Coins (30)
    1045 Favorite Color Stripe (30)
    1008 数组元素循环右移问题 (20)
    1007. 素数对猜想
    1005. 继续(3n+1)猜想 (25)
    1001. 害死人不偿命的(3n+1)猜想 (15)
    递归经典面试题_ 小例
    简单实现_控制台小时钟
    使用Timer组件_实现定时更改窗体颜色
  • 原文地址:https://www.cnblogs.com/rollrock/p/4542345.html
Copyright © 2020-2023  润新知