Xcode: выделение серым цветом уже затронутых кнопок

#xcode5 #uiswipegesturerecognizer

#xcode5 #uiswipegesturerecognizer

Вопрос:

В моем приложении мне нужно, чтобы пользователь мог как можно быстрее нажимать 20 кнопок. Я настроил UISwipeGesture, но я не знаю, как изменить цвет кнопки или просто заставить ее исчезнуть, как только по ней проведут пальцем правильным образом. например, на первой кнопке написано «влево» << и на ней есть 2 жеста прокрутки, мне нужно, чтобы кнопка исчезла или изменила цвет, как только пользователь проведет пальцем влево.

Любая помощь будет высоко оценена 🙂

Комментарии:

1. Проведите пальцем по одной кнопке, чтобы скрыть все 20 кнопок?

2. нет, после правильного нажатия на любую из кнопок их необходимо выделить серым цветом. @hoptqVN.dev

3. Вы можете посмотреть мой ответ. 🙂

Ответ №1:

Вы можете задать цвет фона UIButton с помощью btnYourButton.backgroundColor = [UIColor greyColor];

Или вы можете скрыть кнопку с помощью

btnYourButton.hidden = ДА;

Ответ №2:

Объявите в своем .h

 @interface ViewController : UIViewController 
{    
    NSMutableArray *arrButtonsInView;
}
-(void)handleSwipe : (UIGestureRecognizer*) gr;
  

В viewDidLoad вашего файла .m добавьте приведенный ниже код

 arrButtonsInView = [[NSMutableArray alloc]init];

for (id i in [self.view subviews]) {
    if ([i isKindOfClass:[UIButton class]]) {

        UIButton *btn = i;
        btn.tag = [[self.view subviews] indexOfObject:i];
        [arrButtonsInView addObject:btn];

        UISwipeGestureRecognizer *sw = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipe:)];
        sw.direction = UISwipeGestureRecognizerDirectionLeft;
        [btn addGestureRecognizer:sw];
    }
}
  

И реализовать -(недействительный)handleSwipe: (UIGestureRecognizer*) gr;

 -(void)handleSwipe:(UIGestureRecognizer *)gr {
    UIButton *btn = [arrButtonsInView objectAtIndex:gr.view.tag];
    [btn setBackgroundColor:[UIColor grayColor]];
}