2012-11-13 41 views
3

我想爲我的視圖添加無邊界UIButton。使用界面生成器,我可以通過拖動對象庫中的Round Rect按鈕來完成此操作。然後,在屬性檢查器上,將Type更改爲Custom,並將標題保留爲「Button」。界面生成器一切正常。但是,程序化方法並非如此。以編程方式,這是我如何做到這一點:UIButtonTypeCustom類型的UIButton上的標籤不顯示

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setFrame:CGRectMake(x, y, width, height)]; 
[button setTitle:@"Button" forState:UIControlStateNormal]; 

當我運行的應用程序,按鈕不顯示。也許我在這裏錯過了一些東西,但是當我將類型更改爲UIButtonTypeRoundRect時,會顯示按鈕。但是,我再次想要按鈕是無邊界的。

無論如何,我總是可以使用界面構建器。但是,我想了解爲什麼程序化方法不起作用。那麼,有誰知道問題是什麼?

回答

7

UIButtonTypeCustom真的,實際上是一個自定義按鈕類型。默認情況下沒有有意義的值設置。如果你想顯示它,你必須設置它的背景色和/或它的標題顏色不透明之一:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setFrame:CGRectMake(x, y, width, height)]; 
[button setTitle:@"Button" forState:UIControlStateNormal]; 
// Set visible values 
[button setBackgroundColor:[UIColor greenColor]]; 
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
[someSuperview addSubview:button]; 
+0

(哦,是的,這是第一個答案,如果你想知道。) – 2012-11-13 17:22:18

+0

+1真棒.. !!!!!,我錯過了它只是幾秒 – Kamarshad

+0

@ iOS-Deveoper謝謝! (你也+1。) – 2012-11-13 17:23:28

3

這裏我用你的代碼,你缺少的是

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
1

嗨我是在相同的情況。 我不知道爲什麼地方在我的代碼有

button.translatesAutoresizingMaskIntoConstraints = NO; 

一旦我刪除了這條線,我能夠把我的按鈕框架沒有任何問題。 希望這可以幫助