• 【代码笔记】iOS-对UIView进行截图


    一,效果图。

    二,工程图。

    三,代码。

    RootViewController.m

    复制代码
    #import "RootViewController.h"
    
    
    @interface RootViewController ()
    
    @end
    
    @implementation RootViewController
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        
        //UIView
        UIView *view=[[UIView alloc]initWithFrame:CGRectMake(50, 100, 200, 50)];
        view.backgroundColor=[UIColor redColor];
        [self.view addSubview:view];
        
        //在UIImageView中显示截取的图片
        UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(50, 200, 200, 100)];
        imageView.image=[self screenShotView:view];
        [self.view addSubview:imageView];
    }
    #pragma -mark -functions
    // 对指定视图进行截图
    - (UIImage *)screenShotView:(UIView *)view
    {
        UIImage *imageRet = nil;
        
        if (view)
        {
            if(UIGraphicsBeginImageContextWithOptions)
            {
                UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, 0.0);
            }
            else
            {
                UIGraphicsBeginImageContext(view.frame.size);
            }
            
            //获取图像
            [view.layer renderInContext:UIGraphicsGetCurrentContext()];
            imageRet = UIGraphicsGetImageFromCurrentImageContext();
            UIGraphicsEndImageContext();
        }else{
        }
        
        return imageRet;
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    复制代码

     

  • 相关阅读:
    (原)ubuntu16在torch中使用caffe训练好的模型
    (原)Ubuntu16中卸载并重新安装google的Protocol Buffers
    (原)lua提示cannot load incompatible bytecode
    (原)ubuntu上安装nvidia及torch的nccl
    Ubuntu修改grub菜单引导选项和等待时间
    Servelet 简介
    JAVA JUC 线程池
    JAVA JUC synchronized 锁的理解
    JAVA JUC 读写锁
    JAVA JUC 线程按顺序执行
  • 原文地址:https://www.cnblogs.com/yang-guang-girl/p/5174427.html
Copyright © 2020-2023  润新知