Описание тега uisegmentedcontrol
Объект UISegmentedControl - это горизонтальный элемент управления, состоящий из нескольких сегментов, каждый из которых функционирует как отдельная кнопка. Сегментированный элемент управления предоставляет компактные средства для группировки нескольких элементов управления.
Сегментированный элемент управления может отображать заголовок (объект NSString) или изображение (объект UIImage). Объект UISegmentedControl автоматически изменяет размеры сегментов, чтобы они соответствовали их супервизору, если для них не установлена определенная ширина. Когда вы добавляете и удаляете сегменты, вы можете запросить анимацию действия с эффектами скольжения и затухания.
Вы регистрируете методы целевого действия для сегментированного элемента управления с помощью константы UIControlEventValueChanged, как показано ниже.
SWIFT
segmentedControl.addTarget(self, action: "action:", forControlEvents: .ValueChanged);
ЦЕЛЬ-C
[segmentedControl addTarget:self
action:@selector(action:)
forControlEvents:UIControlEventValueChanged];
То, как вы настраиваете сегментированный элемент управления, может повлиять на его поведение при отображении:
Если вы установите для сегментированного элемента управления мгновенный стиль, сегмент не будет отображаться как выделенный (синий фон), когда пользователь касается его. Кнопка раскрытия всегда мгновенная и не влияет на фактический выбор.
В версиях iOS до 3.0, если сегментированный элемент управления имеет только два сегмента, он ведет себя как переключатель - нажатие на текущий выбранный сегмент вызывает выбор другого сегмента. В iOS 3.0 и более поздних версиях нажатие на текущий выбранный сегмент не приводит к выбору другого сегмента.
Настройка внешнего вида В iOS версии 5.0 и новее вы можете настроить внешний вид сегментированных элементов управления, используя методы, перечисленные в разделе "Настройка внешнего вида". Вы можете настроить внешний вид всех сегментированных элементов управления с помощью прокси-сервера внешнего вида (например, [UISegmentedControl appearance]) или только одного элемента управления.
При настройке внешнего вида, как правило, следует указать значение для нормального состояния свойства, которое будет использоваться другими состояниями, для которых не установлено настраиваемое значение. Точно так же, когда свойство зависит от показателей полосы (на iPhone в альбомной ориентации полосы имеют высоту, отличную от стандартной), вы должны убедиться, что вы указали значение для UIBarMetricsDefault.
В случае сегментированного элемента управления свойства внешнего вида для UIBarMetricsLandscapePhone соблюдаются только для сегментированных элементов управления в меньшей навигации и панелях инструментов, которые используются в альбомной ориентации на iPhone.
Чтобы обеспечить полную настройку, вам необходимо предоставить изображения разделителей для различных комбинаций состояний, используя setDividerImage: forLeftSegmentState: rightSegmentState:barMetrics::
SWIFT
// Image between two unselected segments.
mySegmentedControl.setDividerImage(myImage, forLeftSegmentState: UIControlState.Normal,
rightSegmentState: UIControlState.Normal, barMetrics: UIBarMetrics.Default)
// Image between segment selected on the left and unselected on the right.
mySegmentedControl.setDividerImage(myImage, forLeftSegmentState: UIControlState.Selected,
rightSegmentState: UIControlState.Normal, barMetrics: UIBarMetrics.Default)
// Image between segment selected on the right and unselected on the left.
mySegmentedControl.setDividerImage(myImage, forLeftSegmentState: UIControlState.Normal,
rightSegmentState: UIControlState.Selected, barMetrics: UIBarMetrics.Default)
ЦЕЛЬ-C
// Image between two unselected segments.
[mySegmentedControl setDividerImage:image1 forLeftSegmentState:UIControlStateNormal
rightSegmentState:UIControlStateNormal barMetrics:barMetrics];
// Image between segment selected on the left and unselected on the right.
[mySegmentedControl setDividerImage:image1 forLeftSegmentState:UIControlStateSelected
rightSegmentState:UIControlStateNormal barMetrics:barMetrics];
// Image between segment selected on the right and unselected on the right.
[mySegmentedControl setDividerImage:image1 forLeftSegmentState:UIControlStateNormal
rightSegmentState:UIControlStateSelected barMetrics:barMetrics];
Дополнительные сведения о настройке внешнего вида и поведения см. В разделе " Сегментированные элементы управления".