2013-01-23 75 views
0

我有這個UIbutton寬度和高零?

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[button addTarget:self 
       action:@selector(myAction:) 
    forControlEvents:UIControlEventTouchDown]; 

[button setTitle:NSLocalizedString(@"Action", @"") 
      forState:UIControlStateNormal]; 
CGFloat width = button.bounds.size.width; 

在這一點寬度是零......

零?

任何線索爲什麼?

+0

下投票?謝謝。 – SpaceDog

回答

1

呼叫sizeToFit設置標題標籤後。這將根據您剛剛設置的文本來適當調整大小。

在繪製按鈕之前,它會在按鈕上被調用,但由於您似乎早期需要它,所以您可以自己做。

+0

多數民衆贊成它。謝謝。 – SpaceDog

7

由於您沒有設置的UIButton的框架,修改代碼,在您的按鈕

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
button.frame = CGRectMake(20,20,50,50); 
[button addTarget:self 
       action:@selector(myAction:) 
    forControlEvents:UIControlEventTouchDown]; 

[button setTitle:NSLocalizedString(@"Action", @"") 
      forState:UIControlStateNormal]; 
CGFloat width = button.bounds.size.width; // Now the width of button would be 50 
2

您正在創建一個按鈕,但你不設置它的框架,無論是使用Interface Builder創建和查看後訪問其框架其加載,或給它像一個框架:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[button setFrame: CGRectMake (100, 200, 150, 44)]; 
[button addTarget:self ....