從AlertView例解設定view背景的幾種方法

2021-06-26 16:34:11 字數 3184 閱讀 9418

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

alertview"

message:@"

this is example!

"delegate:nilcancelbuttontitle:@"

cancel"otherbuttontitles:@"

confirm", nil] autorelease];

[alv_obj show];

//

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

通過字典的方式取出其物件就可以操作其屬性。如下:

uilabel *thetitle = [alv_obj valueforkey:@"

_titlelabel

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

uilabel *thebody = [alv_obj valueforkey:@"

_bodytextlabel

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

/*第一種自定義方法*/

uiimageview *imgv = [alv_obj 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 = [alv_obj frame].size;

uigraphicsbeginimagecontext(thesize);

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

theimage = uigraphicsgetimagefromcurrentimagecontext();

uigraphicsendimagecontext();

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

/* 第三種自定義方法*/

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

for (uiview *v in [alv_obj subviews])

}/* 第四種自定義方法 */uiview *additionbackgroundview = [[uiview alloc] initwithframe:cgrectmake(0, 0, alv_obj.frame.size.width-30, alv_obj.frame.size.height-20)];

additionbackgroundview.backgroundcolor = [uicolor colorwithpatternimage:[uiimage imagenamed:@"lovechina.png"]];

#if target_iphone_simulator

[alv_obj insertsubview:additionbackgroundview atindex:1];

#else

[alv_obj insertsubview:additionbackgroundview atindex:0];

#endif

[additionbackgroundview release];

/*第五種自定義***/

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

message:@"我是中國人!"

delegate:nil

cancelbuttontitle:@"取消"

otherbuttontitles:@"確定", nil] autorelease];

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

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

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

backgroundimageview.contentmode = uiviewcontentmodescaletofill;

[thealert addsubview:backgroundimageview];

[thealert sendsubviewtoback:backgroundimageview];

[thealert show];

[thealert release];

本質:作為復合控制項,uialertview是由多個基本控制項組合而成,每個基本控制項的功能也是uialertview的功能的有效組成部分。所以,我們想修改uialertview的某個屬性,可以通過修改控制uialertview的該屬性的基本控制項而達到目的。這是乙個整體和區域性的分析方法。例如本例,我們想修改uialertview的背景圖,就是通過獲取到控制uialertview的背景圖的子控制項uiimageview

而達到目的的

grep 高階例解

grep 是在linux查詢文字過程最常用的命令,熟悉grep的一些常用命令,可以在個別時候有效提高工作效率。場景一 需要查詢乙個目錄及子目錄所有檔案中出現 aaa 但是同時不能出現bbb的行,查詢不區分大小寫 grep rin aaa grep v bb 解釋 r 遞迴查詢 i 不區分大小寫 n ...

gcc的使用例解

linux系統下的gcc gnu c compiler 是gnu推出的功能強大 效能優越的多平台編譯器,是gnu的代表作品之一。gcc是可以在多種硬體平台上編譯出可執行程式的超級編譯器,其執行效率與一般的編譯器相比平均效率要高20 30 gcc 可同時用來編譯 c 程式和 c 程式。一般來說,c 編...

例解const之一

1.const類例項不能呼叫非const的成員函式,編譯器出錯。include include using namespace std class student int get id private int m id string m name int main root cnc bj 010 2...