iOS設(shè)置控件圓角-可選擇圓角方向



1.通過設(shè)置控件layer的cornerRadius來設(shè)置圓角

self.view.layer.cornerRadius =10.f;//如果設(shè)置圓角角度為半圓,則數(shù)值為控件高度的一半

self.view.layer.masksToBounds = YES;//是否刪除多余的位置

2.通過貝塞爾曲線來設(shè)置圓角

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:btn.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(10, 10)];

//rect為控件的frame corners為圓角的位置 cornerRadii為圓角的大小

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];

maskLayer.frame =frame;

maskLayer.path = maskPath.CGPath;

btn.layer.mask = maskLayer;


根據(jù)最近有看到資料補(bǔ)充幾點(diǎn):第1種方式屬于離屏渲染 ,在稍微復(fù)雜點(diǎn)界面對于GPU的開銷會(huì)很大直接點(diǎn)的影響就是會(huì)掉幀屏幕會(huì)卡頓。順便提下觸發(fā)離屏渲染的時(shí)機(jī)

當(dāng)設(shè)置了以下屬性時(shí),都會(huì)觸發(fā)離屏繪制:

shouldRasterize(光柵化)

masks(遮罩)

shadows(陰影)

edge antialiasing(抗鋸齒)

group opacity(不透明)

復(fù)雜形狀設(shè)置圓角等

漸變

參考資料:

離屏渲染







最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容