一聚教程网:一个值得你收藏的教程网站

热门教程

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对象无法构成,则考虑方法三。

热门栏目