我刚刚开始编程并且已经做到了这一点,但是我现在已经为此苦苦挣扎了一段时间并且完全被卡住了。我用两副牌创建了一个 10x10 的扑克牌板。然后我在下面的 -(void)displayBoard 中制作了所有按钮。每张卡片都有一个 BOOL 属性 card.button 持有它是否应该作为按钮启用。
我将它们打开,一切正常。他们一开始是不可触碰的,然后我打开它们,他们正确地调用 (void)boardCardPressed。但是,当我在那里关闭它们时,它们以图形方式似乎已关闭,但当我触摸它们时仍在调用 (void)boardCardPressed。如果我记录按钮属性,则设置正确。我怀疑这与我添加目标而不是删除有关,但我尝试的一切都没有区别。
我在任何地方都没有找到任何帮助,因此非常感谢任何想法、提示或帮助。顺便说一句 - 我怀疑我的尝试不是最优雅的,所以那里的提示也会很棒。这是我能找到的让我的卡片图像可供选择的唯一方法:)
-(void)displayBoard{
board = [model board];
for (int x = 0; x < 10; x++){
for(int y = 0; y < 10; y++){
Card *tCard = [board getCardxpos:x ypos:y];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.tag = tCard.tag;
button.enabled = tCard.button;
button.adjustsImageWhenDisabled = NO;
[button setImage:tCard.image forState:UIControlStateNormal];
button.frame = CGRectMake(tCard.xPos, tCard.yPos, tCard.sizeW, tCard.sizeH);
[button setImage:tCard.image forState:UIControlEventTouchUpInside];
[button addTarget:self action:@selector(boardCardPressed:) forControlEvents:UIControlEventTouchUpInside];
[(SequenceView *)self.view drawIt:button];
}
}
}
-(void)boardCardPressed:(id)sender {
int tid = ((UIControl*)sender).tag;
int x = tid / 10;
int y = tid%10;
Card *tCard = [[model board] getCardxpos:x ypos:y];
tCard.chosen = YES;
tCard.button = NO;
[self displayBoard];
}