Eu criei uma classe personalizada MyButton estendida de UIButton
. Em seguida, adicione isso dentro do Identity Inspector
:

Depois disso, altere o tipo de botão para Personalizado :

Em seguida, você pode definir atributos como textColor
e UIFont
para você UIButton
para os diferentes estados:

Também criei dois métodos dentro da MyButton
classe que devo chamar dentro do meu código quando quero que um UIButton
seja exibido como destacado:
- (void)changeColorAsUnselection{
[self setTitleColor:[UIColor colorFromHexString:acColorGreyDark]
forState:UIControlStateNormal &
UIControlStateSelected &
UIControlStateHighlighted];
}
- (void)changeColorAsSelection{
[self setTitleColor:[UIColor colorFromHexString:acColorYellow]
forState:UIControlStateNormal &
UIControlStateHighlighted &
UIControlStateSelected];
}
Você deve definir o titleColor
normal, realçado e selecionado, UIControlState
pois pode haver mais de um estado por vez, de acordo com a documentação de UIControlState
. Se você não criar esses métodos, UIButton
eles exibirão a seleção ou o destaque, mas eles não permanecerão na UIColor
sua configuração dentro do, UIInterface Builder
porque eles estão disponíveis apenas para uma exibição curta de uma seleção, não para exibir a própria seleção.