2009-11-11 72 views
0

我在應用程序中使用UIButton。該按鈕標題根據用戶選擇動態顯示。現在我必須根據標題內容調整按鈕寬度。 我正在計算字符串長度並將其分配給按鈕的寬度。要調整大小的UIButton

該按鈕按照標題調整大小,但問題如下, 1.如果首先顯示內容較大的標題,之後顯示內容較小的標題意味着該按鈕被覆蓋,則不會顯示該按鈕不刪除以前構建的值。 2.看起來好像一個按鈕重疊在另一個按鈕上。

+0

是它的工作? – Francescu 2009-11-24 13:21:39

回答

0

對我來說,這聽起來好像你沒有改變按鈕的寬度,但你添加了另一個按鈕。你是否在代碼中添加按鈕?如果你這樣做,你可以發佈代碼嗎?

一般來說,如果你想添加另一個按鈕,最好給它一個標籤,並在添加新的標籤之前使用超級視圖中的標籤(即舊按鈕)去除視圖。

這應該是這個樣子(從我的頭頂):

UIButton * button = [[[UIButton alloc] init] autorelease]; 
button.tag = 100; 
/* ...set up the button the way you would normally do... */ 

// remove old button 
[[targetView viewWithTag: 100] removeFromSuperview]; 

// add new button 
[targetView addSubview: button]; 

的標籤用於標識視圖的任意整數。在中心位置最好使用#define您的標籤。

2

假設,你有你的屬性按鈕,在你的類

-(void)changeTitleButtonWithValue:(NSString *)value 
{ 
//get the value length (- (CGSize)sizeWithFont:(UIFont *)font) 
size = [value sizeWithFont:yourFont]; 
self.button.frame = CGRectMake(x, y, size.width,size.height); 
[self.button setTitle:value forState:UIControlStateNormal]; 
[self.button setTitle:value forState:UIControlStateHighlighted]; 

} 

編輯:你有很多方法可以讓你的按鈕

  • 你從Interface Builder的
    • 添加來創建它作爲一個插座
    • 設置它的標籤,並與UIButton getIt * myButton =(UIButton *)[self.view viewForTag :YOURTAG];
  • 您可以從代碼中創建它
    • 實例屬性
    • 與標籤同樣的事情,但是當你創建:myButton.tag = YOURTAG;
相關問題