Функция переключения UIButton ведет себя странно - PullRequest
2 голосов
/ 17 марта 2011

Я пытаюсь создать меню с помощью UIButton, и я просто хочу иметь возможность выбрать только одну кнопку за раз.Ведьма означает, что когда я выбираю кнопку, она автоматически отменяет выбор другой.Но это странно, и я не понимаю, почему.

Когда я выбираю кнопку в меню, она становится красной, а когда я выбираю другую, они обе красные, но мне нужно нажать 2 раза на кулаккнопка, чтобы поставить его черным, и это то же самое для второй кнопки.Проблема в том, что когда я нажимаю на вторую кнопку, первая должна стала черной, а не оставаться красной.

Эта функция вызывается при нажатии кнопки с помощью addTarget.

    - (void)putInSelectedMode:(id)sender {
    NSLog(@"[%d] %s => %s", __LINE__, __FUNCTION__, __FILE__);
    if ([sender isKindOfClass:[UIButton class]]) {
        sender = (UIButton*)sender;
        if ([sender isSelected])
        {
            [sender setSelected:NO];
            [[sender layer] setShadowColor:[[UIColor clearColor] CGColor]];
            [[sender layer] setBorderWidth:0.0f];
        }
        else {

            UIButton *btn = nil;
            NSArray *subviews = [self subviews];

            for (btn in subviews) {
                if ([btn isKindOfClass:[UIButton class]]) {
                    [btn setSelected:NO];
                }
            }

            [[sender layer] setBorderWidth:5.0f];
            [[sender layer] setBorderColor:[[UIColor redColor] CGColor]];
            [[sender layer] setOpaque:NO];
            [sender setSelected:YES];
        }
    }
}
...