我刚刚开始编程,而且我已经做到了这一点,但我现在已经在努力了一段时间而且完全卡住了。我从两个甲板上创建了一张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];
}
答案 0 :(得分:0)
我的代码中有些内容并不完全清楚。据我所知,你创建了displayBoard并在其中包含100个按钮;当触摸任何这些按钮时,再次调用boardCardPressed
并再次创建该板,其100个按钮与原始按钮无关。
这是否意味着这样?或者这可能与您不理解的行为有关?