В помощь мобильному разработчику
UISegmentedControl

Как сменить цвет текста у UISegmentedControl

Александр Алексеев

В iOS класс UISegmentedControl является популярным элементом управления. Он позволяет представлять данные в виде организованных таблиц. При выборе какого-либо сегмента цвет текста у него изменяется согласно настройкам фона элемента, и в этом случае текст может теряться на этом фоне, и его бывает трудно прочитать. В этой статье рассказывается о том, как обойти эту проблему путём внесения поправок в UISegmentedControl для изменения цвета текста при выборе сегмента.

 

Свойства Color у UISegmentedControl

У UISegmentedControl есть определённые прямые свойства Color, и я перечислю наиболее важные из них.

В первую очередь стоит упомянуть Tint Color, который используется в качестве следующего:

  1. Как цвет подсветки либо фона выбранного сегмента
  2. Как цвет текста заголовков невыбранных сегментов
  3. Общий цвет фрейма элемента управления

Следующий у нас Background Color, и вот для чего он используется:

  1. В качестве цвета фона невыбранных сегментов
  2. Как цвет текста названий выбранных сегментов

Оба, и Tint Color и Background Color, являются доступными в качестве прямых свойств самого UISegmentedControl, и поэтому их довольно легко установить. Вы можете столкнуться с такой проблемой, когда текст теряется на фоне или его становится трудно читать на выбранном сегменте. В этом случае Вы можете не менять фоновый цвет полностью, а только изменить цвет текста на выбранном сегменте, чтобы сделать его более удобным для чтения. Я покажу вам, как это можно сделать.

 

Установка Text Color в UISegmentedControl для выбранного сегмента

Установить Text color для выбранного (выделенного) сегмента на самом деле очень просто.  Мы достигаем этого с помощью UITextAttributes и путём присвоения им атрибутов Title Text Attributes элементов контроля для придания им соответствующего состояния, в нашем случае, состояния выбора.

Следующий код предполагает, что у вас уже есть UISegmentedControl и что его сегменты определены:

Он будет отображать зелёные элементы управления с чистым фоном. При клике на табличку цвет текста выбранного сегмента изменяется на синий (в начале он бесцветный) и текст становится гораздо легче читать.

uisegmentedbar смена цвета текста и фона

Автор: Carey Payette
ИсточникБлог автора

Александр Алексеев
Александр Алексеев

Xamarin - разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#. За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

Cognitive Services API Vision

Написать ответ