iOS 常用元件 高效切圓角方法總結

2021-09-11 11:28:33 字數 2330 閱讀 1848

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;

複製**

uilabel
uilabel *label = [[uilabel alloc] init];

// 重點在此!!設定檢視的圖層背景色,千萬不要直接設定 label.backgroundcolor

label.layer.backgroundcolor = [uicolor graycolor].cgcolor;

label.layer.cornerradius = cornerradius;

複製**

uibutton
uibutton *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...