Как включить несколько сегментов UISegmentedControl? - PullRequest
13 голосов
/ 23 июня 2009

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

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

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

Ответы [ 5 ]

8 голосов
/ 23 июня 2009

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

7 голосов
/ 03 июня 2015

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

https://github.com/yonat/MultiSelectSegmentedControl

Это подкласс UISegmentedControl, что удобно. Я разветвлял это здесь:

https://github.com/stewartmacdonald/MultiSelectSegmentedControl

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

2 голосов
/ 23 июня 2009

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

Marco

1 голос
/ 09 февраля 2012

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

0 голосов
/ 15 октября 2014

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

...