IOS - слайдер реагирует только на прикосновения

Я новичок в iOS и хочу знать, как заставить мой ползунок реагировать только после завершения касания. Я выясняю это с помощью метода:

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

Но я не могу заставить его работать.

Кто-нибудь может помочь мне простым и понятным примером?

Ответьте программно, я не использую StoryBoard.

Заранее спасибо!!!


person mor mor    schedule 14.04.2013    source источник


Ответы (4)


Вы можете добавить распознаватель жестов:

 UITapGestureRecognizer *tapGestureRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onSliderTap:)] autorelease];
 [slider addGestureRecognizer:tapGestureRecognizer];

- (void)onSliderTap:(UIGestureRecognizer *)gestureRecognizer { 
   // handle event
}

или добавьте действие на слайдер:

[slider addTarget:self action:@selector(onTouchEnded:) forControlEvents:UIControlEventTouchUpInside];
person B.S.    schedule 14.04.2013

Нашел ответ!

эти ребята мне очень помогли: Обнаруживать касания на UISlider?

с небольшой точностью:

действие для соответствующего ползунка назначьте ему как:

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

и подпись метода:

- (IBAction)touchEnded:(id) sender

с раскадровкой мне кажется немного по-другому назначать действие для ползунка.

Спасибо за ответы!

person mor mor    schedule 14.04.2013

Вы можете подключить UIControlEventTouchUpInside и -Outside вместо -ValueChanged (если вы делаете это прямо сейчас).

Изменить: или, что немного более элегантно, я бы сказал, используйте UIControlEventValueChanged, но также укажите событие в качестве параметра вашего метода:

[self.slider addTarget:self action:@selector(handleValueChanged:withEvent:) forControlEvents:UIControlEventValueChanged];

А затем проверьте фазу касания, чтобы увидеть, находится ли оно в состоянии ended.

person fguchelaar    schedule 14.04.2013

Вы должны установить свойство Continuous.

Содержит логическое значение, указывающее, генерируют ли изменения в значении ползунков события непрерывного обновления.

mySlider.continuous= NO;
person Holger    schedule 14.04.2013