Как я могу включить выбор нескольких сегментов UISegmentedControl?

StackOverflow https://stackoverflow.com/questions/1029570

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

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

Решение

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

Другие советы

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

https://github.com/yonat/MultiSelectSegmentedControl

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

https://github.com/stewartmacdonald/MultiSelectSegmentedControl

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

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

Марко

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top