博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS设置圆角的三种方式
阅读量:6958 次
发布时间:2019-06-27

本文共 1802 字,大约阅读时间需要 6 分钟。

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];}

 

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

文/FFIB(简书作者)
原文链接:http://www.jianshu.com/p/e97348f42276
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
你可能感兴趣的文章
C语言中 struct成员变量顺序对内存的占用
查看>>
POJ1291-并查集/dfs
查看>>
移动办公首选!电商热卖轻薄本高低该怎么选?
查看>>
[译] RNN 循环神经网络系列 1:基本 RNN 与 CHAR-RNN
查看>>
Android技能树 — PopupWindow小结
查看>>
如何在create-react-app项目中使用vw实现手淘vw移动端适配布局
查看>>
Wormhole燃烧地址到底有多安全
查看>>
Web探索之旅 | 第三部分第三课:协议
查看>>
20个优秀手机界面扁平化设计,让你一秒看懂扁平化
查看>>
从百度的PPT文化看程序员晋升
查看>>
Python测试登录功能
查看>>
babel插件入门-AST(抽象语法树)
查看>>
ubuntu 16.04下docker的安装
查看>>
web页面渲染(一)
查看>>
roadhog+dva中环境变量的配置
查看>>
js解决0.1+0.2==0.3的问题的几种方法
查看>>
python中#!/usr/bin/python与#!/usr/bin/env python的区别
查看>>
第10章:并发和分布式编程 10.1并发性和线程安全性
查看>>
多线程之死锁就是这么简单
查看>>
Python字符串格式化
查看>>