添加圆角的4种方法
来源:互联网 发布:mac战网该服务器 编辑:程序博客网 时间:2024/06/06 23:54
//方法一:iOS 9 之后 UIButton设置圆角会触发离屏渲染,UIImageView里PNG图片设置不会,但是如果设置其它阴影效果还是会触发离屏渲染 UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bird.jpg"]]; imageView.frame = CGRectMake(100, 100, 150, 150); // 设置圆角的大小 imageView.layer.cornerRadius = 5; [imageView.layer setMasksToBounds:YES]; [self.view addSubview:imageView]; //方法二:Core Graphics 自己画一个圆角矩形 UIImage *placeHolder = [[UIImage imageNamed:@"bird.jpg"] circleImage]; UIImageView *imageView = [[UIImageView alloc] initWithImage:placeHolder]; imageView.frame = CGRectMake(100, 100, 150, 150); [self.view addSubview:imageView]; //方法三:贝塞尔曲线法 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; imageView.image = [UIImage imageNamed:@"bird.jpg"]; //开始对imageView进行画图 UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, [UIScreen mainScreen].scale); //使用贝塞尔曲线画出一个圆形图 [[UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:imageView.frame.size.width] addClip]; [imageView drawRect:imageView.bounds]; imageView.image = UIGraphicsGetImageFromCurrentImageContext(); //结束画图 UIGraphicsEndImageContext(); [self.view addSubview:imageView]; //方法四:CAShapeLayer法 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; imageView.image = [UIImage imageNamed:@"bird.jpg"]; UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:imageView.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:imageView.bounds.size]; CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init]; //设置大小 maskLayer.frame = imageView.bounds; //设置图形样子 maskLayer.path = maskPath.CGPath; imageView.layer.mask = maskLayer; [self.view addSubview:imageView];
UIImage 分类:@implementation UIImage (Extension)- (UIImage *)circleImage { // 开始图形上下文 UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0); // 获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 设置一个范围 CGRect rect = CGRectMake(0, 0, self.size.width-90, self.size.height-90); // 根据一个rect创建一个椭圆 CGContextAddEllipseInRect(ctx, rect); // 裁剪 CGContextClip(ctx); // 将原照片画到图形上下文 [self drawInRect:rect]; // 从上下文上获取剪裁后的照片 UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); // 关闭上下文 UIGraphicsEndImageContext(); return newImage;}@end
阅读全文
1 0
- 添加圆角的4种方法
- 为 iOS 应用组件添加圆角的方法
- IOS中View添加阴影/圆角的方法
- iOS组件添加圆角、边框的方法
- repeater里添加序号的4种方法(前台,后台)
- repeater里添加序号的4种方法
- repeater里添加序号的4种方法
- repeater里添加序号的4种方法
- ASP.NET Repeater里添加序号的4种方法
- 在VS中添加lib的4种方法
- map容器(4种元素添加方法的异同)
- 虚幻4为场景添加背景音乐的三种方法
- 添加网页背景音乐的两种方法
- 添加不存在记录的3种方法
- Eclipse 添加插件的几种方法
- 添加URL路由的几种方法
- MySQL添加用户的两种方法
- Linux添加路由的两种方法
- Win10安装you-get视频解析程序
- Qt中创建菜单和工具栏
- 利用反射实现一个Java文件书写多个Servlet,无框架
- Oracle常用函数
- c# 值类型和引用类型的区别,装箱,拆箱。
- 添加圆角的4种方法
- 在cygwin上运行apache2
- AsyncTask
- 【二分匹配入门专题1】P
- 通俗易懂看RB-tree(一)
- 从数据库中查找数据并按首字母排序
- [题解]bzoj4719 NOIP2016天天爱跑步
- 从微信AI首席顾问到金融文档智能
- [RK3288][Android5.1] LG屏edp : rk808+edp