關於自定義AlertView背景的方法收集

2021-06-04 23:18:49 字數 3384 閱讀 2661

從網上收集了一些自定義alertview背景的方法,彙總一下以便有需要時使用。

uialertview *thealert = [[[uialertview alloc] initwithtitle:@"

atention

" message:@"

我是中國人!

"delegate:nil cancelbuttontitle:@"

取消" otherbuttontitles:@"

確定", nil] autorelease];

[thealert show];

//undocument api uialertview類標頭檔案裡面帶 「 _」的成員是可以通過 valueforkey來引用的。但這些都是不公開的,私有方法

uilabel *thetitle = [thealert valueforkey:@"

_titlelabel

"];[thetitle settextcolor:[uicolor greencolor]];

uilabel *thebody = [thealert valueforkey:@"

_bodytextlabel

"];[thebody settextcolor:[uicolor bluecolor]];

/*第一種自定義方法

//uiimageview *imgv = [thealert valueforkey:@"_backgroundimageview"];

imgv.image = [uiimage imagenamed:@"lovechina.png"];

*///

/*第二種自定義方法,因有過期屬性的使用,所以新版ios中無效

//// undocument api

uiimage *theimage = [uiimage imagenamed:@"lovechina.png"];

theimage = [theimage stretchableimagewithleftcapwidth:0.0 topcapheight:0.0];

cgsize thesize = [thealert frame].size;

uigraphicsbeginimagecontext(thesize);

[theimage drawinrect:cgrectmake(0, 0, thesize.width, thesize.height)];

theimage = uigraphicsgetimagefromcurrentimagecontext();

uigraphicsendimagecontext();

thealert.layer.contents = (id)[theimage cgimage]; // ios4.0開始不支援contents屬性

*///

/*第三種自定義方法

//遍歷thealert物件的子view,獲取其uiimageview檢視

for (uiview *v in [thealert subviews]) }*/

/*第四種自定義方法

*/uiview *additionbackgroundview = [[uiview alloc] initwithframe:cgrectmake(0, 0, thealert.frame.size.width-30, thealert.frame.size.height-20)];

additionbackgroundview.backgroundcolor = [uicolor colorwithpatternimage:[uiimage imagenamed:@"

lovechina.png

"]];

#if target_iphone_simulator

[thealert insertsubview:additionbackgroundview atindex:1];

#else

[thealert insertsubview:additionbackgroundview atindex:0];

#endif

[additionbackgroundview release];

複製**

第五種自定義**:

1 uialertview *thealert = [[[uialertview alloc] initwithtitle:@"

atention

" message:@"

我是中國人!

"delegate:nil cancelbuttontitle:@"

取消" otherbuttontitles:@"

確定", nil] autorelease];

2 uiimage *alertimage = [uiimage imagenamed:@"

lovechina.png

"];3 uiimageview *backgroundimageview = [[uiimageview alloc] initwithimage:alertimage];

4 backgroundimageview.frame = cgrectmake(0, 0, 282, 160);

5 backgroundimageview.contentmode = uiviewcontentmodescaletofill;

6 [thealert addsubview:backgroundimageview];

7 [thealert sendsubviewtoback:backgroundimageview];

89 [thealert show];

10 [thealert release];

複製**

執行效果如圖:

複製**

執行效果圖:

為了在ios4.2以上也有效,需增加些**來手動隱藏原alertview的背景檢視:修改layoutsubviews方法

1 - (void) layoutsubviews 

6 }78

//原來的**繼續

9 }

自定義UITableViewCell的背景

uitableviewcell是乙個很常用的view,通常我們都是直接使用它。uitableviewcell tableview uitableview tableview cellforrowatindexpath nsindexpath indexpath cell.textlabel.text...

IOS 自定義AlertView實現模態對話方塊

在windows應用程式中,經常使用模態 model 對話方塊來和使用者進行簡單的互動,比如登入框。在ios 應用程式中,有時我們也希望做同樣的事情。但ios的ui庫中,沒有模態對話方塊,最接近那個樣子的應該算是alertview。但僅用alertview,我們只能做文字提示,而不能和使用者做互動。...

IOS 自定義AlertView實現模態對話方塊

在windows應用程式中,經常使用模態 model 對話方塊來和使用者進行簡單的互動,比如登入框。在ios 應用程式中,有時我們也希望做同樣的事情。但ios的ui庫中,沒有模態對話方塊,最接近那個樣子的應該算是alertview。但僅用alertview,我們只能做文字提示,而不能和使用者做互動。...