Ios setTitle和setBackgroundImage不适用于UIView中嵌套的UIButton
我有一些这样的代码:Ios setTitle和setBackgroundImage不适用于UIView中嵌套的UIButton,ios,objective-c,uiview,uibutton,Ios,Objective C,Uiview,Uibutton,我有一些这样的代码: - (void)updateUI { for (UIButton *cardButton in self.oneDimensionalArrayContainingCardButtons) { int cardButtonIndex = [self.oneDimensionalArrayContainingCardButtons indexOfObject:cardButton]; Card *card = [self.game c
- (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:
- (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"];
}
当我点击下面的a卡时,我会将点击的卡设置为选中并更新UI。通过查看日志,我可以看到内容被设置为注销为ret
,这意味着我正在将一个非空NSString传递到cardButton setTitle
问题是,背景图像没有改变,标题似乎没有设置
cardButton.enabled
属性似乎已按预期设置
知道会发生什么吗?什么是“卡”?它是从UIButton扩展而来的自定义按钮吗?在这种情况下,问题可能在于卡片,而不是传递给它的字符串。设置标题颜色或将背景色红色/橙色添加到cardButton.titelLabel,以便您知道按钮的标题表是否隐藏在某处。如果它没有显示标题标签,那么您应该检查标题标签的框架。卡是一个模型类,扩展了NSObject