2012-04-19 25 views
0

我想創建this one推在推客般的按鈕,雖然我的代碼有一點不同:推後一個按鈕,它的標題消失

UIButton* alertsButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
alertsButton.frame = CGRectMake(170, 43.5, 130, 130); 
[alertsButton.titleLabel setFont:[UIFont fontWithName:@"Novecento wide" size:22]]; 
[alertsButton setTitle:NSLocalizedString(@"Alerts", nil) forState:UIControlStateHighlighted]; 
[alertsButton setTitle:NSLocalizedString(@"Alerts", nil) forState:UIControlStateNormal]; 
[alertsButton setTitle:NSLocalizedString(@"Alerts", nil) forState:UIControlStateSelected]; 
[alertsButton addTarget:self action:@selector(toggleAlerts:)forControlEvents:UIControlEventTouchUpInside]; 

-(void)toggleAlerts:(id)sender 
{ 
    UIButton *button = (UIButton *)sender; 

    if (button.selected) { 
     button.selected = NO; 
     [button setImage:[UIImage imageNamed:@"off.png"] forState:UIControlStateNormal]; 
     [button.titleLabel setFont:[UIFont fontWithName:@"Novecento wide" size:22]]; 
     NSLog(button.titleLabel.text); 
    } else { 
     button.selected = YES; 
     [button setImage:[UIImage imageNamed:@"on.png"] forState:UIControlStateNormal]; 
     [button.titleLabel setFont:[UIFont fontWithName:@"Novecento wide" size:22]]; 
     NSLog(button.titleLabel.text); 
    } 
} 

當我按下按鈕,背景會按預期更改,但標籤會消失,儘管文本顯示在調試控制檯中。我試圖this沒有結果:(

回答

1

那是因爲你的形象overalps標籤。

而不是[button setImage:[UIImage imageNamed:@"on.png"] forState:UIControlStateNormal];

[button setBackgroundImage:[UIImage imageNamed:@"on.png"] forState:UIControlStateNormal];

0

您的開啓和關閉圖像什麼尺寸?

如果他們太大,他們會將文本推出視圖 正如尼基塔所說,如果圖像應該是背景,請使用setBackgroundImage方法od