iOS设置圆角的三种方式

 更新时间:2017年03月01日 11:30:32   作者:夏日恋歌  
本文给大家分享ios设置圆角的三种方式,相对来说最简单的一种是第一种方法,具体内容详情参考下本文

第一种方法:通过设置layer的属性

最简单的一种,但是很影响性能,一般在正常的开发中使用很少.

  UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
  //只需要设置layer层的两个属性
  //设置圆角
  imageView.layer.cornerRadius = imageView.frame.size.width / 2;
  //将多余的部分切掉
  imageView.layer.masksToBounds = YES;
  [self.view addSubview:imageView];

第二种方法:使用贝塞尔曲线UIBezierPath和Core Graphics框架画出一个圆角

 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
  imageView.image = [UIImage imageNamed:@"1"];
  //开始对imageView进行画图
  UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 1.0);
  //使用贝塞尔曲线画出一个圆形图
  [[UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:imageView.frame.size.width] addClip];
  [imageView drawRect:imageView.bounds];
  imageView.image = UIGraphicsGetImageFromCurrentImageContext();
   //结束画图
  UIGraphicsEndImageContext();
  [self.view addSubview:imageView];

第三种方法:使用CAShapeLayer和UIBezierPath设置圆角

首先需要导入<AVFoundation/AVFoundation.h>

#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
  imageView.image = [UIImage imageNamed:@"1"];
  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];
}

这三种方法中第三种最好,对内存的消耗最少啊,而且渲染快速。

以上所述是小编给大家介绍的iOS设置圆角的三种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • iOS中长条蓝色按钮(button)实现代码

    iOS中长条蓝色按钮(button)实现代码

    本文通过实例代码给大家介绍了iOS中长条蓝色按钮(button)实现方法,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-08-08
  • iOS中Block的回调使用和解析详解

    iOS中Block的回调使用和解析详解

    刚刚进入iOS开发行业,发现开发中要用到大量的block回调,由此可见它的重要性。本文主要讲的是 Block 回调的使用,以及 Block 是如何实现这种神奇的回调两部分来讲的,下面来一起看看吧。
    2016-09-09
  • iOS自定义雷达扫描扩散动画

    iOS自定义雷达扫描扩散动画

    这篇文章主要为大家详细介绍了iOS自定义雷达扫描扩散动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • iOS开发自定义页脚和页眉技巧详解

    iOS开发自定义页脚和页眉技巧详解

    这篇文章主要为大家介绍了iOS开发自定义页脚和页眉的技巧示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Objective-C学习之ARC的实现方法

    Objective-C学习之ARC的实现方法

    自动引用计数(Automatic Reference Counting, ARC)把压在程序员们肩头的管理内存的重担卸除了不少,更不用说让跟踪内存泄漏那样的烦心事也少了很多。下面这篇文章主要给大家介绍了关于Objective-C学习之ARC的实现方法,需要的朋友可以参考借鉴下。
    2017-12-12
  • 详解Objective-C中的语法糖@{}究竟是什么

    详解Objective-C中的语法糖@{}究竟是什么

    这篇文章主要给大家介绍了关于Objective-C中语法糖@{}究竟是什么的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • iOS tableView右侧索引视图状态获取的方法实例

    iOS tableView右侧索引视图状态获取的方法实例

    tableView用于显示一个垂直滚动的单元格数(通常为可重复使用的单元格)组成的视图,这篇文章主要给大家介绍了关于iOS tableView右侧索引视图状态获取的相关资料,需要的朋友可以参考下
    2021-07-07
  • 详解使用Xcode进行iOS设备无线调试

    详解使用Xcode进行iOS设备无线调试

    这篇文章主要介绍了详解使用Xcode进行iOS设备无线调试,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • IOS 获取已连接的wifi信息的实现代码

    IOS 获取已连接的wifi信息的实现代码

    这篇文章主要介绍了IOS 获取已连接的wifi信息的实现代码的相关资料,这里提供实现代码帮助大家学习理解这部分内容,需要的朋友可以参考下
    2017-08-08
  • 如何在iphon IOS设备上使用二维码

    如何在iphon IOS设备上使用二维码

    深度解析iPhone ios设备上使用二维码是本文要介绍的内容,二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。不多说,我们直接来脚本之家学习内容详解,感兴趣的朋友一起来关注吧
    2015-08-08

最新评论