iOS设置圆角的几种方式

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.52 green:0.09 blue:0.07 alpha: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();    
       return image;
}

3. 通过另一张mask图创建新图

首先需要一张mask图,然后将这张mask图和原图合成,得到带圆角的新图。效率和方法一类似,合成新图等同于在off-screen作图。该方法的优点是可以不局限于圆角,全凭mask图控制。

如果要效率(例如要提高table view的滚动帧数),就多用方法二。要方便,自然是方法一。如果需要的特殊形状UIBezierPath对象无法构成,则考虑方法三。

本文地址 www.bigcode.top

你可能感兴趣的:(iOS设置圆角的几种方式)