#ios #cocoa-touch
#iOS #cocoa-touch
Вопрос:
У меня есть элемент слайдера, для которого я хочу обнаружить действие касания.
Я пытаюсь добавить действие touchesEnded программно:
[self.slider touchesEnded:(NSSet *] touches withEvent:event];
Проблема в том, что я понятия не имею, откуда взять переменную touches (я предполагаю, что параметр события — это функция, которую я хочу вызвать после завершения касания).
Ответ №1:
Создайте подкласс для UISlider. Реализовать
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
метод в подклассе. Делегируйте событие касания вашему представлению.
Комментарии:
1. Как тогда будет работать моя реализация? Я полагаю, что в файле CustomUISlider.m у меня будет метод touchesEnded, но он не сможет получить доступ к объекту NSTimer, который я использую в своем контроллере просмотра.
2. Используйте делегирование и протокол. После завершения касания делегируйте событие контроллеру представления вместе с
touches
объектом.