美文网首页
视图设置圆角调优记录

视图设置圆角调优记录

作者: shansir | 来源:发表于2016-08-22 15:25 被阅读23次

今天做了视图的圆角设置测试,分别测试了 imageview,label,uiview,button。

以上视图可简单分成两个类别:imageview,label ,需设置masktobouds才能使圆角可见;uiview,button并不需要设置masktobounds 即可获得圆角效果。

label其实自带有圆角类型,所以大部分业务并不需要手动设置圆角。

至于uiview和button ,及时设置了cornerRadius,帧率的影响并不是非常大。

主要针对imageview的相关做一些记录。

经过试验,找到相对有效的解决办法是 异步重绘图片,然后通过主线程更新UI。

而大部分时间我们都会结合SDWebimage 使用,结合源码我们大可以在downloadOperation中 ,重绘bitmap成功后剪切一份圆形图片保存至本地,同时读取缓存前判断cornerRadius的值,如果该属性为width的一半,则读取之前保存的圆形图片。但是这种方式局限了只能视图只能为圆形。

如果只是设置一定数值的圆角(非圆形),则在category中异步重绘就可以了。

另外在试验过程中,发现图片部分会影响imageview的 Color Blended Layers,查过一些资料后说图片的alpha会对视图混合造成影响,所以我猜测这就是 SDWebimahe里边 response成功过后,仍然用bitmap重绘一次的原因,避免图层混合的问题。还有可能是使用bitmap 性能更优。

相关文章

网友评论

      本文标题:视图设置圆角调优记录

      本文链接:https://www.haomeiwen.com/subject/wyqgsttx.html