2015-05-24 32 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"]; 
} 

和看起來像這樣的UI:

my UI

當我點擊了一個卡下面,我設置點擊卡選擇並更新用戶界面。我可以通過觀看日誌記錄來看到內容正在被註銷爲ret,這意味着我傳入一個非空NSString到cardButton setTitle

問題是,背景圖像不會改變,標題看起來不會被設置。

cardButton.enabled屬性似乎按預期設置。

任何想法可能會發生什麼?

回答

0

'Card'是什麼?它是從UIButton擴展的自定義按鈕嗎?在這種情況下,問題可能出在Card上,而不是你傳遞給它的字符串。

+0

卡是模型類,擴展NSObject – johncorser

1

SetTitleColor或將backgroundColor Red/Orange添加到cardButton.titelLabel,以便您瞭解Button的titleLable隱藏在某處或某處。如果它不顯示titleLabel,那麼你應該檢查titleLable的框架。

相關問題