Подтвердить что ты не робот

Обнаружение затрагивает UISlider?

У меня есть экран UISlider на экране, и мне нужно определить, когда пользователь перестает касаться его. (так что я могу угаснуть некоторые элементы).

Я попытался использовать:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

но это не сработало, когда закончилось касание слайдера.

4b9b3361

Ответ 1

Вы можете обнаружить, когда касание заканчивается использованием двух контрольных событий; попробуйте

[slider addTarget:self action:@selector(touchEnded:) 
                       forControlEvents:UIControlEventTouchUpInside];

или

[slider addTarget:self action:@selector(touchEnded:) 
                       forControlEvents:UIControlEventTouchUpOutside];

Если вы хотите определить оба типа события touchesEnd, используйте

[slider addTarget:self action:@selector(touchEnded:) 
   forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];

Ответ 2

Вместо использования touchesEnded: (который не должен использоваться для этой цели в любом случае) присоедините действие к событию UISlider UIControlEventValueChanged и установите для свойства continuous значение UISlider на NO, поэтому событие будет срабатывать, когда пользователь завершит выбор значения.

mySlider.continuous = NO;
[mySlider addTarget:self
          action:@selector(myMethodThatFadesObjects) 
          forControlEvents:UIControlEventValueChanged];