изменить цвет переключателя в приложении iphone - PullRequest
15 голосов
/ 12 ноября 2009

Я использую UISwitch в iOS 3, чтобы сделать элемент переключателя в моем приложении. У него по умолчанию установлен синий цвет, но я хочу изменить его на коричневый (не получил подсказку через Google, за исключением некоторых неприятных слухов).

Как выбрать другой цвет для элемента UISwitch в iOS 3?

Ответы [ 6 ]

42 голосов
/ 10 декабря 2011

Наконец, с iOS5 вы можете изменить цвет переключателя с помощью свойства onTintColor.

UISwitch *s = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
s.on = YES;
s.onTintColor = [UIColor redColor];
[self.view addSubview:s];
[s release];

произвести это

enter image description here

Я надеюсь, что это поможет, даже если это давно!

4 голосов
/ 15 августа 2017

Для глобального изменения всех элементов UISwitch в Swift 3 используйте прокси-сервер вида:

UISwitch.appearance().onTintColor = UIColor.brown

по методу AppDelegate application:didFinishLaunchingWithOptions:.

2 голосов
/ 18 сентября 2012

В настоящее время вы ограничены текстовыми значениями On / Off или 0/1 для UISwitch. Вы можете настроить цвет с помощью оттенка. Для дальнейшей настройки я бы предложил что-то наподобие того, что было опубликовано выше, с полностью индивидуальным решением

ех. [mySwitch setOnTintColor:[UIColor colorWithRed:0 green:175.0/255.0 blue:176.0/255.0 alpha:1.0]];

источник: http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5

РЕДАКТИРОВАТЬ: Для iOS3, вы ограничены пользовательской имплементацией, я бы предложил заменить две кнопки с пользовательскими изображениями В более поздних версиях iOS вам предоставляется гораздо больше контроля и встроенных опций настройки.

1 голос
/ 13 декабря 2016

Для Swift 3:

var mySwitch : UISwitch = ...
mySwitch.onTintColor = UIColor.blue
1 голос
/ 13 ноября 2009

Взгляните на пользовательский элемент управления UISwitch, который я создал, чтобы позволить мне изменить цвет фона элемента управления. Вы можете использовать тот же метод, чтобы очень легко изменить текст, шрифт или цвет текста.

http://www.homick.com/posts/custom-uiswitch-control

Код доступен на Github и включает PSD, который используется для создания трех различных файлов png, которые использует элемент управления. Вы можете изменить содержимое psd, чтобы воссоздать файлы png в любом формате, который вам нравится. Поменяйте их на элемент управления, и понеслось.

Это дает намного больше возможностей, чем только оранжевый и синий.

0 голосов
/ 12 ноября 2009

В основном в iOS 3. Вы не можете. Но вы знаете ... люди приземляются здесь из-за ранга и комментариев, содержащих другие версии и прочее, поэтому ...

Пятый выпуск iOS теперь позволяет документировать способ сделать это: со свойством onTintColor.

UISwitch *s = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
s.on = YES;
s.onTintColor = [UIColor redColor];
[self.view addSubview:s];
[s release];

произвести это

It's a thing that was requested that looks a color

Редактировать: Я понятия не имею, почему кто-то пришел и откатил ответ, чтобы ограничить его только вопросом, не делая то же самое для всех ответов.

Изменить еще: В iOS 3 вам пришлось использовать некую недокументированную функцию. Раньше здесь была ссылка об этом , но она сломалась. И если вы это сделаете, ваше приложение может быть отклонено из-за изменения цвета.

Это начинается с этого, и этого должно быть достаточно, чтобы найти его где-то еще:

UISwitch *aSwitch = [[UISwitch alloc] initWithFrame:someRectangle];
[aSwitch setAlternateColors:YES];
//Do something with aSwitch
[aSwitch release];

Я не могу рекомендовать это. И это оказывается непопулярным.

...