本篇文章主要介绍了"视图实现圆角效果的三种方法及比较",主要涉及到视图实现圆角效果的三种方法及比较方面的内容,对于视图实现圆角效果的三种方法及比较感兴趣的同学可以参考一下。

方法一、layer.cornerRadius

第一种方法最简单,通过层对象的cornerRadius属性实现圆角效果,代码如下:

view.layer.cornerRadius = 8.0;
view.layer.masksToBounds = YES;

缺点是会有2次rending passes。首先off-screen画出带圆角的图,然后在视图上画第二次。

方法二、通过UIBezierPath对象设置带圆角的作图区域

这种方法的好处是只有一次rending pass,是三种方法中效率最高的。缺点是需要override视图。代码如下:

- (void)drawRect:(CGRect)rect {
CGRect bounds = self.bounds;

[[UIColor whiteColor] set];
UIRectFill(bounds);

[[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:8.0] addClip];

[self.image drawInRect:bounds];
}

方法三、通过另一张mask图创建新图

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

总结:

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

例子:https://github.com/weipin/RoundedCorner

例子中,tab 1是无圆角效果,其他三个tab各自对应三种方法。

转自:http://www.cocoachina.com/applenews/devnews/2013/0104/5461.html

视图实现圆角效果的三种方法及比较相关推荐

  1. iOS 视图实现圆角效果的三种方法及比较

    通过代码,至少有三种方法可以为视图加上圆角效果.附例子: https://github.com/weipin/RoundedCorner 方法一.layer.cornerRadius 第一种方法最简单 ...

  2. 菱角图形输出c语言,CDR将多边形/图形的角度变圆?CDR制作圆角图形的三种方法

    在CorelDRAW中如何将多边形/图形的角度变圆.可能在以早的版本中,都没有直接实现圆角多边形的功能,直到后来较高版本中提及的圆角/扇形角/倒棱角功能的出现,才很好的解决了这个问题,其实方法也不止是 ...

  3. php 绘制圆角矩形,快速绘制圆角矩形的三种方法 - 行业动态 - 济南新视觉实训基地-平面UI设计PS培训,室内设计,web前端,影视3D动画后期制作培训...

    圆角矩形可谓是UI设计中,我们最常见到的元素之一了,通过圆角矩形工具去绘制的圆角过于普通,且略显呆板,缺少吸引力.今天新视觉实训就给大家分享三种绘制圆角矩形的方法,让我们在千篇一律的圆角矩形中找寻一些 ...

  4. windows之实现3D立体效果的三种方法

    第一种:快捷键:win+tab 另外一种:cmd输入rundll32.exe dwmapi #105 第三种:使用软件bumptop

  5. Android设置透明效果的三种方法(转)

    1.使用Android系统自带的透明效果资源  <Button  android:background="@android:color/transparent"/>   ...

  6. 模型评价 - 判断数据模型拟合效果的三种方法

    数据建模的目的就是获得从自变量映射到因变量的函数,在建模的探索过程中,不同的方式总会得出不同的函数模型,而这些函数大多是由一些参数构成的,比如 y = f( x; w0, w1, w2, w3, .. ...

  7. 【Android进阶学习】设置透明效果的三种方法

    1.使用Android系统自带的透明效果资源 <android:backgroundandroid:background="@android:color/transparent&quo ...

  8. Android 中ScrollView垂直滚动视图之隐藏滚动条的三种方法

    博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,

  9. 三种方法实现弹出框边框半透明和圆角的效果

    发现支付宝的一个充值抽红包的系统里面有个弹出对话框,边框半透明效果,就想着自己做一个弹出对话框效果, 用三种方法实现弹出框边框半透明和圆角的效果 1.用rgba来实现背景半透明,设置内边距 2.设置b ...

最新文章

  1. 2011-11-27
  2. node.js初步探究
  3. 2020-11-7( servlet)
  4. Rails 应用使用 Capistrano2 部署流程
  5. CodeForces - 1440E Greedy Shopping(线段树)
  6. serialVersionUID的作用以及如何用idea自动生成实体类的serialVersionUID
  7. android安全性发展,Android未来发展 安全是重点
  8. 实现等待wx.login完成后在执行其他请求
  9. 西门子rwd60参数设置调试手册_RWD60 RWD68 RWD62西门子温控器调试说明指导
  10. 感受一下Java中的“枚举类型”
  11. jQuery源码研究——怎么看源码
  12. mysql好玩的代码_MySQL常用命令(1)
  13. MATLAB— RGB图像 ==Bayer图像 (bggr, gbrg, grbg, rggb)
  14. CentOS7安装MySQL8报错mariadb-libs is obsoleted by mysql-community-libs-8.0.xx-1.el7.x86_64
  15. 爬虫就是python吗_python就是爬虫吗
  16. 第五十七篇 Django-CRM系统-1登录,注册,修改密码
  17. canvas根据坐标点绘制图形
  18. GHost++ CB (Custom Build) MOD
  19. linux删除用户失败:userdel:user xxx is currently used by process xxxx
  20. IMX8MP录像功能测试

热门文章

  1. XML-DTD解析(转载的)
  2. 数据库间表结构对比和数据对比
  3. 预警就是踩刹车,六步法定义预警体系
  4. oracle数据库空间预警,数据库系统预警机制
  5. 医用温度传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. RPA赋能与数据化运营
  7. 远程终端服务(3389)的安全配置方法,无需公网IP,3步实现外网访问远程桌面
  8. 【 微信小程序 】behaviors
  9. 计算机与测控技术专业就业方向,测控专业就业方向及前景
  10. 黑苹果不能登录AppleID解决