Как я могу включить выбор нескольких сегментов UISegmentedControl?
-
06-07-2019 - |
Вопрос
Допустим, мой UISegmentedControl имеет 8 пронумерованных сегментов.Я бы хотел, чтобы пользователь мог включить 2, 3 или более из них одновременно.Переключение их.По сути, это как биты в байте.Это возможно?Я полагаю, что это происходит в обычной Mac OS X, но я не могу найти способ сделать это в iPhone SDK.
Если мне нужно смоделировать это, поместив кнопки в представление, есть ли способ сделать следующее:
- Закруглить углы представления, чтобы оно выглядело как UISegmentedControl в стиле «полоса»?
- Использовать встроенный фон для кнопок в стиле «бар»?
- Дать кнопкам тень, как у всего стиля «бар»?(не текст)
Решение
Это невозможно с помощью UIKit. Я бы порекомендовал создать пользовательский элемент управления или массив элементов управления UISwitch
, представляющих каждый из параметров в вашем UISegmentedControl.
Другие советы
Это лучший из найденных мной пользовательских элементов управления, позволяющих одновременно выбирать несколько сегментов:
https://github.com/yonat/MultiSelectSegmentedControl
Это подкласс UISegmentedControl, что удобно. Я разветвлял это здесь:
https://github.com/stewartmacdonald/MultiSelectSegmentedControl
и добавил несколько примеров кода в ReadMe и добавил метод, который позволяет вам получить NSArray из заголовков всех выбранных сегментов.
Я думаю, что самый простой способ — создать собственный сегментированный элемент управления с помощью UIButton.
Марко
Похоже, сейчас есть способ сделать это в XCode. В инспекторе атрибутов есть раздел с сегментами, заголовком, изображением, поведением. Варианты поведения: " Включено " и "Выбранный". Вы можете выбрать " Выбрано " для нескольких сегментов.
Я рекомендую вам попробовать https://github.com/tayhalla/THSegmentedControl
это фактический подкласс UISegmentedControl
, поэтому он прекрасно вписывается в конструктор интерфейса и все остальное. Р>