全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

前言

圆角(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种方法实例(附性能评测)  # 圆角  # 图层  # 新图  # 明度  # 是一种  # 很多人  # 这张  # 这篇文章  # 谢谢大家  # 设置为  # 局限于  # 不透  # 画上  # 全凭  # 背景色  # 类中  # 如何设置  # 发现了  # 帧数  # 偏移量 


相关文章: Swift中swift中的switch 语句  如何在万网自助建站平台快速创建网站?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何挑选最适合建站的高性能VPS主机?  中山网站推广排名,中山信息港登录入口?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  如何在宝塔面板创建新站点?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  电商平台网站制作流程,电商网站如何制作?  建站之星后台管理系统如何操作?  香港网站服务器数量如何影响SEO优化效果?  平台云上自主建站:模板化设计与智能工具打造高效网站  岳西云建站教程与模板下载_一站式快速建站系统操作指南  高防服务器租用如何选择配置与防御等级?  深圳网站制作的公司有哪些,dido官方网站?  C#怎么创建控制台应用 C# Console App项目创建方法  内部网站制作流程,如何建立公司内部网站?  如何选择适合PHP云建站的开源框架?  PHP 500报错的快速解决方法  制作农业网站的软件,比较好的农业网站推荐一下?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  东莞专业制作网站的公司,东莞大学生网的网址是什么?  网站制作需要会哪些技术,建立一个网站要花费多少?  清除minerd进程的简单方法  建站主机选购指南:核心配置与性价比推荐解析  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  如何用PHP快速搭建高效网站?分步指南  宝塔新建站点报错如何解决?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  如何通过FTP服务器快速搭建网站?  建站之星ASP如何实现CMS高效搭建与安全管理?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  如何快速搭建高效简练网站?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  魔方云NAT建站如何实现端口转发?  如何快速搭建支持数据库操作的智能建站平台?  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  如何用已有域名快速搭建网站?  如何注册花生壳免费域名并搭建个人网站?  定制建站价位费用解析与套餐推荐全攻略  如何通过建站之星自助学习解决操作问题?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  c# await 一个已经完成的Task会发生什么 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。