У меня есть UISegmentedControl
в UIView
в моем поповере, который я хочу отключить в некоторых случаях. Сегментированный элемент управления настраивается с помощью Interface Builder в файле пера. Проверяется чековая книжка IB «Включено».
Чтобы отключить его, я написал:
self.segmentedControl.enabled = NO; // or YES when I want it enabled
Что работает в той мере, в которой сегментированный элемент управления не реагирует на события касания.
Однако графической обратной связи не существует. Я бы хотел, чтобы сегментированный элемент управления затемнялся (серым), когда он отключен. Я также попытался установить для его свойства highlighted
значение NO
, но безрезультатно.
Это должно быть возможно, так как отключение UISegmentedControl
с помощью Interface Builder дает желаемый эффект затемнения.
Однако, если я сделаю это, мой код не сможет повторно включить его:
self.segmentedControl.enabled = YES;
не сделает его включенным: даже если он снова начнет принимать сенсорные события, он останется затемненным.
Это как если бы IB «включен» флажок контроллера двух свойств: enabled
и dimmed
. Но что это за свойство dimmed
, которое я не могу найти?
Что я пропустил?
Это в симуляторе iPad 4.3.
(обратите внимание, что я имею в виду весь элемент управления, а не отдельные его сегменты).
Редактировать: Я провел дальнейшие исследования и обнаружил, что отключение сегментированного элемента управления в IB также устанавливает его свойство alpha
равным 0,5.
При добавлении:
self.segmentedControl.alpha = 0.5; // or 1.0 if enabled
Мое приложение теперь работает нормально.
Правильно ли я считаю, что установка свойства enabled
должна также учитывать внешний вид экрана?