UILabel简单高效实现圆角的方式
生活随笔
收集整理的這篇文章主要介紹了
UILabel简单高效实现圆角的方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需求
我們會經常遇到這樣一個需求,給TableViewCell添加標簽,例如:餓了么App中店鋪會有,減、特、新等標簽,這些標簽一般都是用UILabel控件實現,UILabel中設置text,textColor,backgroundColor,以及cornerRadius。
)問題
這個需求要求我們做圓角,業界也有很多做圓角的方式,最簡單的就是設置label.layer.cornerRadius = 2; label.layer.masksToBounds = YES; 但是這樣做(label.layer.cornerRadius > 0 && label.layer.masksToBounds = YES)會出現離屏渲染,對于頁面中只有少量需要做圓角,也不會造成卡頓,但是如果是每個TableViewCell設置一些圓角,就會使列表滑動起來有明顯卡頓。
解決方法
業界對于圓角優化很多方式,大家可以搜一下相關文章。本文只針對UILabel的cornerRadius方式進行講解。先說一下cornerRadius屬性,它是影響layer顯示的backgroundColor和border,對layer的contents不起作用。
- 對于不需要設置label的backgroundColor,只設置borderWidth、borderColor的label,直接設置cornerRadius,不需要設置masksToBounds = YES,就可以實現圓角功能。
- 對于需要同時設置label的backgroundColor時,直接設置cornerRadius是不能正常顯示圓角的,原因是:UILabel設置backgroundColor的行為,不再是設定layer的背景色而是為contents設置背景色。所以解決方式是我們不去設置label的backgroundColor,而是直接設置label.layer.backgroundColor,這樣就可以實現單獨設置cornerRadius,顯示圓角的效果。代碼:
參考文章:iOS設置圓角的四種方法
總結
以上是生活随笔為你收集整理的UILabel简单高效实现圆角的方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用Python建设企业认证和权限控制平台
- 下一篇: 阿里1682亿背后的协同研发云——云效公