Я довольно новичок в разработке для iPhone и создаю свое первое приложение :) В одном из моих контроллеров представления я построил нестандартный слайдер, который должен вести себя как собственный слайдер «слайд для разблокировки».
Сейчас я сомневаюсь, как реализовать поведение «перетаскивания наружу».Как я уже сказал, мне бы хотелось, чтобы он был точно таким же, как и у родного слайдера, это означает, что когда палец перетаскивает ползунок, если он выдвигается, ползунок должен стремиться к нулю.
Мои сомнения не в этомв части анимации (я уже успешно использую блок анимации), но в части управления событиями.Какое управляющее событие мне следует использовать?
Я использую:
[customSlider addTarget:self action:@selector(sliderMoved:) forControlEvents:UIControlEventValueChanged];
для обработки скользящей части (палец перемещает курсор) и
[customSlider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventTouchUpInside];
дляобработать часть релиза, но проблема в том, что если я отпущу палец снаружи, функция sliderAction не будет вызвана.
РЕДАКТИРОВАТЬ: я пытался реализовать решение, которое дал мне Бруно Домингес, но японимая, что проблема в том, что по умолчанию UISlider продолжает обновляться, даже если палец перетаскивается за его пределы (попробуйте открыть, например, раздел «Яркость» в «Системных настройках», и вы увидите, что ползунок будет продолжать обновляться, даже если вы перетаскиваете за пределыэтого).Поэтому мой вопрос можно переопределить: как избежать этого поведения по умолчанию и обновлять ползунок только при движении пальца по нему?