Измените цвет UISwitch appwise
Я использую UISwitch
в iOS 3, чтобы сделать элемент переключателя в моем приложении. У него по умолчанию установлен синий цвет, но я хочу изменить его цвет на коричневый.
Как выбрать другой цвет для элемента UISwitch
в iOS 3?
Как выбрать другой цвет для элемента UISwitch
в современном приложении для iOS (iOS 5+)?
Ответы
Ответ 1
Для современной версии iOS XX пропустите ответ, поскольку в последнее время он не имеет значения. Все еще здесь? В 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];
Я не могу рекомендовать это. И это оказывается непопулярным.
Ответ 2
Наконец, в iOS 5 вы можете изменить цвет переключателя с помощью свойства 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]()
Ответ 3
Для глобального изменения для всех элементов UISwitch в Swift 3 используйте прокси-сервер вида:
UISwitch.appearance().onTintColor = UIColor.brown
в соответствии с методом AppDelegate application:didFinishLaunchingWithOptions:
.
Ответ 4
В настоящее время вы ограничены текстовыми значениями 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
EDIT: для iOS3 вы ограничены пользовательской импликации, я бы предложил обмен двумя кнопками с пользовательскими изображениями. В более поздних версиях iOS вам предоставляется гораздо больше возможностей управления и встроенных параметров настройки.
Ответ 5
Взгляните на пользовательский элемент управления UISwitch, который я создал, чтобы позволить мне изменить цвет фона элемента управления. Вы можете использовать тот же метод, чтобы очень легко изменить текст, шрифт или цвет текста.
http://www.homick.com/posts/custom-uiswitch-control
Код доступен на GitHub и включает PSD, который используется для создания трех разных файлов PNG, которые использует элемент управления. Вы можете изменить содержимое psd для воссоздания файлов PNG в любом формате, который вам нравится. Поменяйте их в управление, и вы уходите.
Это дает гораздо больше возможностей, чем просто оранжевый и синий.
Ответ 6
Для Swift 3:
var mySwitch : UISwitch = ...
mySwitch.onTintColor = UIColor.blue