Как установить цвет границы UISwitch?

В моем приложении есть:

[[UIView appearance] setTintColor:[UIColor whiteColor]];

А вот что у меня когда on:

включить положение

и off:

переключатель в выключенном положении

Мне нужно сделать границу UISwitch видимой, как в Settings.app:

Настройки приложения


person k06a    schedule 22.02.2014    source источник
comment
Для тех, кто пытается получить этот вид, я повторю суть своего комментария под принятым ответом: вместо белого установите цвет оттенка на светло-серый или не совсем белый (пользовательский цвет, который составляет около 80% белого). Затем эта граница будет отображаться на белом фоне.   -  person ToolmakerSteve    schedule 24.03.2017


Ответы (3)


Ваш [[UIView appearance] setTintColor:[UIColor whiteColor]]; мешает оттенку вашего переключателя. Команда для установки цвета оттенка — self.mySwitch.tintColor = [UIColor grayColor];, которая устанавливает цвет, используемый для оттенка контура переключателя, когда он выключен.

person sangony    schedule 22.02.2014
comment
Если вы удалите [[внешний вид UIView] setTintColor:[UIColor whiteColor]]; тогда это сработает. Я провел тест, и без установки UIView tintColor вы получите границу UISwitch любого цвета, который вам нужен. - person sangony; 23.02.2014
comment
Да, это работает, но мне нужно установить белый оттенок. Я хочу, чтобы этот шаг self.mySwitch.tintColor = [UIColor grayColor]; решил мою проблему, но это не... - person k06a; 23.02.2014
comment
Возможно ли использовать self.view.backgroundColor = [UIColor whiteColor]; вместо [[внешний вид UIView] setTintColor:[UIColor whiteColor]]; ? - person sangony; 23.02.2014
comment
Как я уже сказал, я протестировал его, и вы не можете получить желаемые результаты, используя setTintColor. Если использование настройки цвета фона действительно не удовлетворяет вашим целям, я предлагаю опубликовать новый вопрос, в котором конкретно спрашивается, как отображать границу UISwitch, когда setTintColor установлен на белый. Извините, что не смог вам помочь. - person sangony; 24.02.2014
comment
Чтобы уточнить для всех, кто читает этот ответ: цвет оттенка (в настоящее время) только управляет цветом границы, отображаемым, когда переключатель выключен - это то, что здесь требуется. Чтобы сделать это видимым на белом фоне, установите любой цвет, кроме белого. Чтобы соответствовать виду, показанному в вопросе, установите его на светло-серый или не совсем белый (настраиваемое значение, которое не является 100% белым, возможно, 80%). - person ToolmakerSteve; 24.03.2017

Не могли бы вы попробовать добавить эту строку в свой AppDelegate didFinishLaunchingWithOptions

[[UISwitch appearance] setTintColor:[UIColor grayColor]];

Это должно применить выбранный цвет Tint ко всем вашим элементам управления UISwitch.

person McDaddy    schedule 05.03.2014

Вместо использования прокси внешнего вида вы также можете использовать:

[self.mySwitch setThumbTintColor:[UIColor blueColor]];
[self.mySwitch setOnTintColor:[UIColor redColor]];

т.е. Используйте setOnTintColor для цвета фона/границы.

person Daniel Bowden    schedule 12.09.2014