ios 客戶端開發中,經常碰到圓角檢視的需求,本文簡單總結一下uiview
及其子類的一些切圓角方法,並且保證避免出現離屏渲染。
uiview(不包括其子類)
uiview *view = [[uiview alloc] init];
view.backgroundcolor = [uicolor blackcolor];
view.layer.cornerradius = 3.f;
// 以下兩行,任寫一行
view.layer.maskstobounds = no;
view.cliptobounds = no;
// 以下兩行,千萬不要加!
view.layer.maskstobounds = yes;
view.cliptobounds = yes;
複製**
注意點:uiview 只要設定圖層的cornerradius
屬性即可(不明白的話,可以看看官方文件裡對cornerradius
的描述),如果設定layer.maskstobounds = yes
,會造成不必要的離屏渲染。
uitextfield
uitextfield
有兩種實現方法
// 天然支援設定圓角邊框
uitextfield *textfield = [[uitextfield alloc] init];
textfield.borderstyle = uitextborderstyleroundedrect;
複製**
// 與 uiview 類似
uitextfield *textfield = [[uitextfield alloc] init];
textfield.layer.cornerradius = cornerradius;
複製**
uitextview// 與 uiview 類似
uitextview *textview = [[uitextview alloc] init];
textview.layer.cornerradius = cornerradius;
複製**
uilabeluilabel *label = [[uilabel alloc] init];
// 重點在此!!設定檢視的圖層背景色,千萬不要直接設定 label.backgroundcolor
label.layer.backgroundcolor = [uicolor graycolor].cgcolor;
label.layer.cornerradius = cornerradius;
複製**
uibuttonuibutton *button = [uibutton buttonwithtype:uibuttontypecustom];
// 設定 uibutton 的背景。
[button setbackgroundimage:image forstate:uicontrolstatenormal];
複製**
背景繪製方法
+ (uiimage *)purecolorimagewithsize:(cgsize)size color:(uicolor *)color cornradius:(cgfloat)cornradius
複製**
uiimageview
uiimageview
有四種方式實現圓角:
@implementation uiimage (extend)
- (uiimage *)drawrectwithroundedcorner
@end
複製**
- (uiimageview *)roundedrectimageviewwithcornerradius:(cgfloat)cornerradius
複製**
uiimageview *imageview = [[uiimageview alloc] init];
imageview.layer.cornerradius = 5.f;
imageview.layer.maskstobounds = yes;
複製**
以上是開發過程常用元件的切圓角方法總結,如果有更好的方法或者文中有不對的地方,還請指正提出,謝謝。
core animation 中文教程
iOS 切圓角離屏渲染問題
gpu螢幕渲染有兩種方式 1 on screen rendering 當前螢幕渲染 指的是gpu的渲染操作是在當前顯示的螢幕緩衝區進行。2 off screen rendering 離屏渲染 指的是gpu在當前螢幕緩衝區以外開闢乙個緩衝區進行渲染操作。離屏渲染的代價很高體現在兩個方面,1 需要建立乙...
iOS高效開發常用的第三方類庫
1.jsonjson編碼解碼 2.gtmbase64 base64編碼解碼 3.touchxml 解析 4.sfhfkeychainutils 安全儲存使用者密碼到keychain中 5.mbprogresshud很棒的乙個載入等待特效框架 6.asihttprequest 等相關協議封裝 7.eg...
iOS 開發常用的開源元件
github裡面有大量優秀的第三方框架,而且license對商業很友好。1.mantle mantle能簡化cocoa和cocoatouch應用的model層。簡單點說,程式中經常要進行網路請求,請求到得一般是json字串,一般會建乙個model類來存放這些資料。這就要求編寫一系列的序列化 來把js...