#iphone #cocoa-touch #interface-builder
#iPhone #cocoa-touch #конструктор интерфейса
Вопрос:
Кажется, что объекты UISegmentedControl отправляют только события «UIControlEventValueChanged». Возможно ли заставить их также выдавать события «UIControlEventTouchDown»?
Пытались щелкнуть правой кнопкой мыши элемент управления в IB, а затем подключить параметр события «UIControlEventTouchDown» к методу IBAction, но событие не отправляется. Также пытались сделать это в коде, используя оператор «действие: @selector», но также никакого события.
В обоих случаях, когда я меняю событие на «UIControlEventValueChanged», событие отправляется, как и ожидалось.
Надеюсь, что кто-нибудь, кто разбирается в этом, может помочь…
Комментарии:
1. Я не уверен, но сомневаюсь в этом. Однако довольно легко подклассировать / свернуть свой собственный элемент управления.
2. @Jesse спасибо за комментарий, подклассы могли бы быть практическим решением, как вы предложили. Но какой метод следует добавить или переопределить…
3. Лично я никогда не использую UISegmentControl и создал пользовательский подкласс UIView, в котором есть 3 кнопки, и оформляю их так, чтобы они выглядели так, как мне нужно, и просто указываю, какая из них выбрана, и т.д.
4. @Jesse, спасибо, что поделился своим опытом…
Ответ №1:
Вы могли бы использовать addGestureRecognizer:
метод, унаследованный от UIView
Комментарии:
1. К счастью, объект UITapGestureRecognizer менее сложен в использовании и настройке, чем кажется. Еще раз спасибо за ваш ответ, и это очень помогло.
2. Предполагается, что он прост в использовании, верно? Рад быть полезным.