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 +)?

Foi útil?

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

É uma coisa que foi solicitado que a aparência de uma cor

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:

Digite os detalhes da imagem aqui

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top