從網上收集了一些自定義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) layoutsubviews6 }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,我們只能做文字提示,而不能和使用者做互動。...