为什么我的UIButton在我按钮后仍然调用方法。启用=否;?

时间:2012-07-07 20:16:24

标签: objective-c uibutton

我刚刚开始编程,而且我已经做到了这一点,但我现在已经在努力了一段时间而且完全卡住了。我从两个甲板上创建了一张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];

}

1 个答案:

答案 0 :(得分:0)

我的代码中有些内容并不完全清楚。据我所知,你创建了displayBoard并在其中包含100个按钮;当触摸任何这些按钮时,再次调用boardCardPressed并再次创建该板,其100个按钮与原始按钮无关。

这是否意味着这样?或者这可能与您不理解的行为有关?