zoukankan      html  css  js  c++  java
  • 设置图片圆角的三种方式

        //了解切圆角的方式有三种,我们一种一种来看
        //圆角的第一种方式:(设置Layer属性)
        UIImageView *imageView = [[UIImageView alloc]init];
        imageView.backgroundColor = [UIColor purpleColor];
        imageView.frame = CGRectMake(110, 100, 200, 200);
        imageView.image = [UIImage imageNamed:@"1"];
        //将多余的部分切掉
        imageView.layer.masksToBounds = YES;
        //设置圆角
        imageView.layer.cornerRadius = imageView.frame.size.width / 2;
        [self.view addSubview:imageView];
        //圆角的第二种方式:(使用贝塞尔曲线:UIBezierPath和Core Graphics 框架画出一个圆角)
        UIImageView *imageView = [[UIImageView alloc]init];
        imageView.backgroundColor = [UIColor purpleColor];
        imageView.frame = CGRectMake(110, 100, 200, 200);
        imageView.image = [UIImage imageNamed:@"1"];
        /**
         *  对图片进行画图
         *
         *  @param size#>   图片的大小 description#>
         *  @param opaque#> 是否透明 description#>
         *  @param scale#>  比例大小 description#>
         *
         *  @return nil
         */
        UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 1.0);
        
        /**
         *  使用贝塞尔曲线画出一个圆形图
         *
         *  @param CGRect 图片路径
         *
         *  @return 圆角大小
         */
        [[UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:imageView.frame.size.width] addClip];
        
        [imageView drawRect:imageView.bounds];
        
        imageView.image = UIGraphicsGetImageFromCurrentImageContext();
        
    //    结束画图
        UIGraphicsEndImageContext();
        
        [self.view addSubview:imageView];
    // 圆角的第三种方式:(使用CAShapeLayer和UIBezierPath)设置圆角 注:此方法消耗的内存少,渲染快.
    // 首先导入框架 #import <AVFoundation/AVFoundation.h>
        UIImageView *imageView = [[UIImageView alloc]init];
            imageView.backgroundColor = [UIColor purpleColor];
            imageView.frame = CGRectMake(110, 100, 200, 200);
            imageView.image = [UIImage imageNamed:@"1"];
        UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:imageView.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:imageView.bounds.size];
        
        CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
        //设置大小
        maskLayer.frame = imageView.bounds;
        //设置图形样子
        maskLayer.path = path.CGPath;
        imageView.layer.mask = maskLayer;
        
        [self.view addSubview:imageView];
  • 相关阅读:
    排序算法研究
    SqlParameters参数
    winfrom项目
    方法参数中有out和in关键字是什么意思?
    在C#中使用存储过程
    11Book系列多表群操作
    7drf过滤排序分页异常处理
    12RBAC基于角色的访问控制
    5drf路由组件
    8drf自动生成接口文档
  • 原文地址:https://www.cnblogs.com/LzwBlog/p/5667033.html
Copyright © 2011-2022 走看看