2013-06-02 2 views
0

Я пытаюсь установить UIImage для UIButton с помощью следующего кода, но ничего не происходит. Я устанавливаю их внутри viewDidLoad. Единственный способ показать это, если я использую раскадровку и задаю образ таким образом.UIButton setImage не работает

- (void)viewDidLoad 
{ 
    ... 

    [self.locateMeButton setFrame:CGRectMake(11, 11, 46, 46)]; 
    [self.locateMeButton setImage:[UIImage imageNamed:@"locateme_disabled.png"] forState:UIControlStateDisabled]; 
    [self.locateMeButton setImage:[UIImage imageNamed:@"locateme_active.png"] forState:UIControlStateHighlighted]; 
    [self.locateMeButton setBackgroundImage:[UIImage imageNamed:@"locateme_normal.png"] forState:UIControlStateNormal]; 
    ... 

} 
+0

тип здесь не определен. roundrect или пользовательская кнопка? – Nirav

+3

Это ноль, случайно? –

+0

Нашел вопрос. Как-то Xcode не подключался к viewcontroller, когда я crontrol перетаскивался в VC. Он создал IBOutlet, но не установил соединение (правый щелчок на кнопке в раскадровке не показывал соединений)? – jdog

ответ

0
UIButton *aboutBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 

[aboutBtn addTarget:self action:@selector(showAboutPage) forControlEvents:UIControlEventTouchUpInside]; 
[aboutBtn setTitle:@"About Me" forState:UIControlStateNormal]; 
[aboutBtn setFrame:CGRectMake(80.0, 120.0, 162.0, 42.0)]; 
[aboutBtn setBackgroundImage:[UIImage imageNamed:@"locateme_normal.png"] forState:UIControlStateNormal]; 
[aboutBtn setBackgroundImage:[UIImage imageNamed:@"locateme_disabled.png"] forState:UIControlStateHighlighted]; 
0

У меня была аналогичная проблема. В моем случае оказалось, что я воссоздал панель инструментов, поэтому использовался неправильный объект панели инструментов. (Пытался получить доступ к кнопке на неправильной панели инструментов). В принципе кажется хорошей идеей просто систематически проверять, что ваши методы действуют на всех получателей, которых вы ожидаете, и передаются значения параметров, которые вы ожидаете.

Смежные вопросы