#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]];
}