Делегат UISegmentedControl/Touch Events
У меня есть UISegmentedControl, который имеет шесть сегментов, я хочу, чтобы они вызывали метод при изменении значения, но также, когда каждый сегмент получает UIControlEventTouchDragIn
, потому что я хочу, чтобы UILabel отображался с его именем, когда человек пытается выбрать что-то на нем и перетащить палец по элементу управления, но сегментированный элемент управления не вызывает этот вызов, даже когда я перетаскиваю его. Пожалуйста помоги. Возможно, мне нужно создать UIButtons над элементом управления, который вызывает методы при перетаскивании, но вызовите метод с измененным значением, когда они получают кран.
Ответы
Ответ 1
Вы можете просто подклассифицировать UISegmentedControl и переопределить метод - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
return;
}
для управления перетаскиванием и расположением касаний.
Будучи тем, что вы не сможете определить, на каком сегменте перетаскивание в любом случае, вам может быть лучше сделать все вручную прикосновением и отслеживать его с помощью этих функций.
Ответ 2
Возможно, я не понимаю ваш вопрос правильно, но вы не могли бы просто использовать это:
[segmentedControl addTarget:self
action:@selector(action:)
forControlEvents:UIControlEventValueChanged];
и просто замените UIControlEventValueChanged на UIControlEventTouchDragIn? Затем в вашем методе действий сделайте все, что нужно сделать, например, измените текст UILabel.
У меня есть UITAbleView с кучей ячеек и UISegmentedControll в каждой ячейке, и он отлично подходит для меня.
Документация для UISegmentedControl, по-видимому, недоступна в Интернете, но вы можете увидеть ее в XCode Organizer, и приведенный выше код является первым примером.