在iOS开发中我们经常会遇到给UIImageView添加圆角iOS圆角阴影封装,如给用户头像设置圆角等在这里记录一下使用过的三种方法方法一通过设置UIView的layer来设置圆角 此方法的有个缺点是会强制Core Animation提前渲染屏幕的离屏绘制iOS圆角阴影封装, 而离屏绘制就会给性能带来负面影响,会有卡顿的现象出现 方法二通过Graphics绘制。

1设置视图的layercornerRadius属性 内存消耗169 对uiview或uiimageview使用layercornerRadius设置圆角时,会触发离屏渲染,会带来额外的性能消耗,影响UI流畅这种方式适合用在设置圆角比较少页面中,例如,头像的圆角或者按钮的圆角,可以用此方法,对性能的损耗可以忽略不计离屏渲染OffScreen Rendering意。

iOS圆角阴影封装的简单介绍  第1张

当然,平台的区别要留意,例如iOS使用十进制色值,Android使用16进制,iOS可以绘制圆角和阴影,Android更倾向于用9png等这些差异要在同一套标注中体现出来,让两端的开发各取所需如果你发现标注软件中无法在同一张图上标十进制和十六进制色值,你可以用文字标注替代其中一个,的截屏工具中也是。

3CPU的离屏渲染即非GPU渲染,如果重写了drawReact,并且使用Core Graphics技术进行了绘制操作,就涉及到了这个技术,整个过程由CPU在APP中同步完成,渲染得到bitmap后再交给GPU进行渲染显示为什么离屏渲染会耗性能当使用遮罩,圆角,阴影的时候,图层属性的混合体被指定为在预合成之前是不能直接在屏幕。

设置按钮圆角的操作在iOS开发中常见,如注册页面的注册按钮需设置圆角以提升用户体验当遇到设置视图cornerRadius属性失效的问题,可采取以下解决步骤首先确保按钮已添加约束,尝试设置按钮的clipsToBounds属性为YES,然后执行layoutIfNeeded方法若在设置约束后无法立即获取frame,添加selfview的layoutIfNeeded方法后。