Обнаружение затрагивает UISlider?
У меня есть экран UISlider на экране, и мне нужно определить, когда пользователь перестает касаться его. (так что я могу угаснуть некоторые элементы).
Я попытался использовать:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
но это не сработало, когда закончилось касание слайдера.
Ответы
Ответ 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];