iOS中设置圆角的几种方法示例

发布时间 - 2026-01-10 23:25:57    点击率:

前言

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对各位iOS开发者们能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对的支持。


# ios  # label设置圆角  # ios高效设置圆角  # 设置圆角  # iOS应用开发中UIView添加边框颜色及设置圆角边框的方法  # IOS设置按钮为圆角的示例代码  # iOS设置圆角的三种方式  # IOS设置UIView的边框为圆角详解及实例  # iOS中设置view圆角化的四种方法示例  # iOS设置圆角的三种方法  # iOS设置可选择圆角方向的控件圆角  # iOS设置圆角的4种方法实例(附性能评测)  # 圆角  # 图层  # 新图  # 明度  # 是一种  # 很多人  # 这张  # 这篇文章  # 谢谢大家  # 设置为  # 局限于  # 不透  # 画上  # 全凭  # 背景色  # 类中  # 如何设置  # 发现了  # 帧数  # 偏移量 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  海南网站制作公司有哪些,海口网是哪家的?  三星、SK海力士获美批准:可向中国出口芯片制造设备  如何快速上传自定义模板至建站之星?  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  如何在建站主机中优化服务器配置?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  jquery插件bootstrapValidator表单验证详解  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  网易LOFTER官网链接 老福特网页版登录地址  如何在自有机房高效搭建专业网站?  Swift中循环语句中的转移语句 break 和 continue  Laravel如何记录自定义日志?(Log频道配置)  Android仿QQ列表左滑删除操作  如何挑选优质建站一级代理提升网站排名?  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  如何为不同团队 ID 动态生成多个“认领值班”按钮  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  如何用虚拟主机快速搭建网站?详细步骤解析  动图在线制作网站有哪些,滑动动图图集怎么做?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  javascript中的try catch异常捕获机制用法分析  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何用JavaScript实现文本编辑器_光标和选区怎么处理  Bootstrap整体框架之CSS12栅格系统  图册素材网站设计制作软件,图册的导出方式有几种?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何用搬瓦工VPS快速搭建个人网站?  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  什么是javascript作用域_全局和局部作用域有什么区别?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  Java遍历集合的三种方式  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Laravel如何优化应用性能?(缓存和优化命令)  Android中AutoCompleteTextView自动提示  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  香港服务器租用每月最低只需15元?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  移动端脚本框架Hammer.js  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Python数据仓库与ETL构建实战_Airflow调度流程详解  Win11关机界面怎么改_Win11自定义关机画面设置【工具】