Как разрешить выбор нескольких сегментов UISegmentedControl?

Допустим, мой UISegmentedControl имеет 8 пронумерованных сегментов. Я хотел бы, чтобы пользователь мог включить 2, 3 или более из них сразу. Переключить их. По существу, как бит в байте. Это возможно? Я считаю, что это на обычной Mac OS X, но я не могу найти способ сделать это в iPhone SDK.

Если мне нужно имитировать это, поместив кнопки в представление, есть ли способ сделать следующее:

  • Разверните углы представления так, чтобы он выглядел как "стиль" UISegmentedControl "bar"?
  • Используйте встроенные фоны, которые имеет стиль "бар" на кнопках?
  • Дайте кнопкам тень, как у всего стиля "бар"? (не текст)

Ответы

Ответ 1

Это невозможно с помощью UIKit. Я бы рекомендовал создать настраиваемый элемент управления или массив элементов управления UISwitch, представляющий каждый из параметров в вашем UISegmentedControl.

Ответ 2

Это лучший настраиваемый элемент управления, который я нашел, который позволяет выбирать несколько сегментов одновременно:

https://github.com/yonat/MultiSelectSegmentedControl

Этот подкласс UISegmentedControl, который удобен. Я разветкил его здесь:

https://github.com/stewartmacdonald/MultiSelectSegmentedControl

и добавили некоторые примеры кода в ReadMe и добавили метод, который позволяет вам получить NSArray заголовков всех выбранных сегментов.

Ответ 3

Я думаю, что самый простой способ - создать собственный сегментированный контроль с помощью UIButton.

Marco

Ответ 4

В XCode теперь есть способ сделать это. В Инспекторе атрибутов есть раздел с сегментом, типом, изображением, поведением. Параметры поведения: "Включено" и "Выбрано". Вы можете выбрать "Selected" для нескольких сегментов.

Ответ 5

Я рекомендую вам попробовать https://github.com/tayhalla/THSegmentedControl
это фактический подкласс UISegmentedControl, поэтому он прекрасно вписывается в Interface Builder и все такое.