2015-05-24 4 views
1

У меня есть некоторый код, как это:SETTITLE и setBackgroundImage не работает UIButton вложен в UIView

- (void)updateUI { 
    for (UIButton *cardButton in self.oneDimensionalArrayContainingCardButtons) { 
     int cardButtonIndex = [self.oneDimensionalArrayContainingCardButtons indexOfObject:cardButton]; 

     Card *card = [self.game cardAtIndex:cardButtonIndex]; 
     [cardButton setTitle:[self titleForCard:card] forState:UIControlStateNormal]; 
     [cardButton setBackgroundImage:[self backgroundImageForCard:card] forState:UIControlStateNormal]; 
     cardButton.enabled = !card.isMatched; 
     self.scoreLabel.text = [NSString stringWithFormat:@"Score: %d", self.game.score]; 
    } 
} 


- (NSString *)titleForCard:(Card *)card 
{ 
    NSString *ret = card.isChosen ? card.contents : @""; 
    NSLog(ret); 
    return ret; 
} 

- (UIImage *)backgroundImageForCard:(Card *)card { 
    return [UIImage imageNamed:card.isChosen ? @"cardback" : @"cardfront"]; 
} 

и пользовательский интерфейс, который выглядит следующим образом:

my UI

Когда я нажимаю на а ниже, я устанавливаю выбранную карту кликов и обновляю пользовательский интерфейс. Я могу видеть, наблюдая журналы, что содержимое устанавливается в качестве ret, что означает, что я пропускаю непустую NSString до cardButton setTitle.

Проблема заключается в том, что фоновое изображение не изменяется, и заголовок не появляется, чтобы его установить.

Свойство cardButton.enabled похоже, что будет установлено.

Любая идея, что может быть?

ответ

0

Что такое «Карта»? Это пользовательская кнопка, которая простирается от UIButton? В этом случае проблема может быть связана с Картой, а не с строкой, которую вы передаете ей.

+0

Карта является модельным классом, расширяет NSObject – johncorser

1

SetTitleColor или Добавить backgroundColor Red/Orange на cardButton.titelLabel, чтобы вы узнали название ButtonLable, которое скрывается где-то или нет. Если он не показывает titleLabel, тогда вы должны проверить рамку titleLable.

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