Mudança de cor do UISwitch appwise
Pergunta
Eu estou usando UISwitch
no iOS 3 para fazer um elemento chave em meu aplicativo. Tem conjunto de cores padrão para azul, mas eu quero mudar sua cor para marrom.
Como posso escolher uma cor diferente para o elemento UISwitch
no iOS 3?
Como posso escolher uma cor diferente para o elemento UISwitch
em um aplicativo iOS moderna (iOS 5 +)?
Solução
Para uma versão moderna iOS XX ignorar a resposta, pois tem relevância zero, recentemente. Ainda aqui? Em iOS 3. Você não pode. Mas você sabe ... as pessoas estão pousando aqui por causa da classificação e comentários contendo outras versões e coisas assim ...
O quinto iOS liberar agora permite uma forma documentada de fazer isso:. Com o onTintColor
propriedade
UISwitch *s = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
s.on = YES;
s.onTintColor = [UIColor redColor];
[self.view addSubview:s];
[s release];
produzir este
Editar: Não tenho idéia por que alguém iria vir através and roll de volta a resposta para limitá-lo à questão somente enquanto não fazer o mesmo para todas as respostas
.Editar mais: Em iOS 3 você tinha que usar alguma característica não documentada. Costumava haver um link sobre isso aqui mas quebrou. E se você fez que a sua aplicação pode ser rejeitado por causa da mudança da cor.
É o tipo de começa com este, que deve ser suficiente para que você possa encontrá-lo em outro lugar:
UISwitch *aSwitch = [[UISwitch alloc] initWithFrame:someRectangle];
[aSwitch setAlternateColors:YES];
//Do something with aSwitch
[aSwitch release];
Eu não posso recomendá-lo. E isso acaba por impopular.
Outras dicas
Finalmente, com o iOS 5, você pode mudar a cor do interruptor com o onTintColor
propriedade.
UISwitch *s = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
s.on = YES;
s.onTintColor = [UIColor redColor];
[self.view addSubview:s];
[s release];
produz o seguinte:
Para uma mudança global para todos os elementos UISwitch em Swift 3, usar o proxy aparência:
UISwitch.appearance().onTintColor = UIColor.brown
pelo método application:didFinishLaunchingWithOptions:
AppDelegate.
Atualmente você está limitado a valores de texto de On / Off ou 0/1 para uma UISwitch. Você pode personalizar a cor usando matiz. Para mais personalizações Gostaria de sugerir algo como o que foi postado acima indo com uma solução totalmente personalizada
ex. [mySwitch setOnTintColor:[UIColor colorWithRed:0 green:175.0/255.0 blue:176.0/255.0 alpha:1.0]];
Fonte: http://www.raywenderlich.com/ 4344 / user-interface de personalização-in-ios-5
EDIT: Para iOS3, você está limitado a um implimentation costume, gostaria de sugerir a troca de dois botões com imagens personalizadas. Em versões iOS posteriores dão-lhe muito mais controle e construído em opções de personalização.
Dê uma olhada no controle UISwitch personalizado que eu construí para permitir-me para mudar a cor de fundo do controle. Você pode usar o mesmo método para mudar o texto, o tipo de letra ou a cor do texto com muita facilidade.
http://www.homick.com/posts/custom-uiswitch-control
O código está disponível no GitHub e inclui um PSD que é usado para construir três arquivos PNG diferente que utiliza o controlo. Você pode modificar o conteúdo do psd para recriar os arquivos PNG em qualquer formato que você gosta. Trocar aqueles no controle e você vai longe.
Isso dá muito mais opções do que apenas laranja e azul.
Para Swift 3:
var mySwitch : UISwitch = ...
mySwitch.onTintColor = UIColor.blue