最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
iOS中设置圆角的几种方法示例
时间:2022-06-26 06:04:59 编辑:袖梨 来源:一聚教程网
圆角(RounderCorner)是一种很常见的视图效果,相比于直角,它更加柔和优美,易于接受。但很多人并不清楚如何设置圆角的正确方式和原理。设置圆角会带来一定的性能损耗,如何提高性能是另一个需要重点讨论的话题。我查阅了一些现有的资料,收获良多的同时也发现了一些误导人错误。
1. 使用layer属性
代码如下 | 复制代码 |
layer.backgroundColor = [UIColor cyanColor].CGColor;// 给图层添加背景色 layer.contents = (id)[UIImage imageNamed:@"view_BG.png"].CGImage;// 给图层添加背景图片 layer.cornerRadius =8;// 将图层的边框设置为圆脚 layer.masksToBounds = YES;// 隐藏边界 layer.borderWidth =5;// 给图层添加一个有色边框 layer.borderColor = [UIColor colorWithRed:0.52green:0.09blue:0.07alpha:1].CGColor; layer.shadowOffset = CGSizeMake(0,3);// 设置阴影的偏移量 layer.shadowRadius =10.0;// 设置阴影的半径 layer.shadowColor = [UIColor blackColor].CGColor;// 设置阴影的颜色为黑色 layer.shadowOpacity =0.9;// 设置阴影的不透明度 |
2. 使用绘图设置圆角
代码如下 | 复制代码 |
/** 设置圆形图片(放到分类中使用) */ - (UIImage *)cutCircleImage { UIGraphicsBeginImageContextWithOptions(self.size, NO,0.0);// 获取上下文 CGContextRef ctr = UIGraphicsGetCurrentContext();// 设置圆形 CGRect rect = CGRectMake(0,0, self.size.width, self.size.height); CGContextAddEllipseInRect(ctr, rect);// 裁剪 CGContextClip(ctr);// 将图片画上去 [self drawInRect:rect]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); returnimage; } |
3. 通过另一张mask图创建新图
首先需要一张mask图,然后将这张mask图和原图合成,得到带圆角的新图。效率和方法一类似,合成新图等同于在off-screen作图。该方法的优点是可以不局限于圆角,全凭mask图控制。
小结
如果要效率(例如要提高table view的滚动帧数),就多用方法二。要方便,自然是方法一。如果需要的特殊形状UIBezierPath对象无法构成,则考虑方法三。
相关文章
- 《无限暖暖》天星之羽获得位置介绍 12-20
- 《流放之路2》重铸台解锁方法介绍 12-20
- 《无限暖暖》瞄准那个亮亮的成就怎么做 12-20
- 《无限暖暖》魔气怪终结者完成方法 12-20
- 《无限暖暖》曙光毛团获得位置介绍 12-20
- 《无限暖暖》日光果获得位置介绍 12-20