Вопрос об UISegmentedControl

#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. Предполагается, что он прост в использовании, верно? Рад быть полезным.