2012-05-31 51 views
1

按鈕這是我正在我的自定義按鈕,當前的方法:定製一個UIAlertView中

UIAlertView *av = [[UIAlertView alloc] init]; 

[av addButtonWithTitle:@""]; 
UIButton *yesButton = [av.subviews lastObject]; 

[av show]; 

[yesButton setImage:[UIImage imageNamed:@"test.png"] forState:UIControlStateNormal]; 

這樣做的問題是,原來的觀點依然是我的按鈕設置在圖像周圍可見。它並沒有完全封裝圖像。下面是我到目前爲止的例子:

https://www.dropbox.com/s/htb9pfihwmel5oo/testimage.png

反正是有讓這個形象完全佔據整個按鈕?

回答

3

如果您wan't東西是不一樣強大狡猾Raskal的答案,只是希望得到一個快速的黑客,那工作原理類似於現有的代碼。你可以做這樣的事情。當然,你可以改變新的按鈕框架,以符合你的想法。此外,你必須定義UIAlertView中來,所以你必須把它的引用的變量,並關閉它在你的someAction:方法。

UIAlertView *av = [[UIAlertView alloc] init]; 
[av addButtonWithTitle:@""]; 
UIButton *yesButton = [av.subviews lastObject]; 
[yesButton setHidden:YES]; 

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[av addSubview:button]; 
[av show]; 

[button setImage:[UIImage imageNamed:@"test.png"] forState:UIControlStateNormal]; 
[button addTarget:av action:@selector(someAction:) forControlEvents:[yesButton allControlEvents]]; 
[button setFrame:yesButton.frame]; 
+0

你是先生,是天才。謝謝! – ad0ran

1

如果在這種情況下,所有你做的是造型的按鈕看起來不同,但在一個簡單的方式,我會按照這個教程來完成你正在尋找的效果:

http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-uialertview-custom-graphics/

如果你正在創建的應用程序註定要用於應用程序商店,我只想提及,無論你實施什麼樣的改變,都要確保它沒有使用任何私有API或違背HIG中記錄的任何內容。這兩種情況都肯定會讓你的應用遭到拒絕。

+0

感謝您的鏈接,我實際上收藏了它,如果有的話我會遇到一種情況,我需要完全自定義一個UIAlertView。但現在,我需要做的只是更換按鈕,以便接近以簡單的方式對我來說不夠好。 – ad0ran

+0

不客氣。樂於幫助。 –