J'ai plusieurs contrôleurs de vue et je souhaite définir la couleur de la police de tous sur rouge.
[[UINavigationBar appearance] setFont:[UIFont boldSystemFontOfSize:12.0]];
lance une erreur de sélecteur non reconnue.
Comment puis-je réparer cela?
ios5
uinavigationbar
uiappearance
carbonr
la source
la source
Réponses:
De Ray Wenderlich:
http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5
Ou si vous préférez avec le style littéral d'objet:
Modifier pour iOS 7 et suivants
UITextAttributes est obsolète car iOS 7 vous pouvez utiliser ce qui suit:
la source
if ([navBarInstance respondsToSelector:@selector(appearance)])
abord car il plantera les versions iOS inférieures à 5.UITextAttributeTextColor
est obsolète au profit deNSForegroundColorAttributeName
dans iOS 7Pour les cibles de déploiement supérieures ou égales à iOS 6, vous devez utiliser à la
NSShadow
place:la source
Faire cela sur iOS 8+ et dans Swift. Il n'y a pas
setTitleTextAttributes
d'objet d'apparence. Au lieu de cela, faites ceci:la source
Je l'ai fait en ajoutant seulement quelques lignes de code dans la méthode AppDelegate.m class didFinishLaunchingWithOptions: Utilisez ce code:
ça marche pour moi...
la source
Si vous devez le faire dans Swift, vous pouvez créer une extension pour UINavigationBar pour vous permettre d'obtenir ou de définir ces paramètres.
Vous pouvez ensuite définir la couleur et la police comme ceci:
la source
titleColor
ou l' autre outitleFont
individuellement. Si vous les utilisez ensemble, leself.titleTextAttributes
sera défini sur une nouvelle valeur à chaque fois qu'une des variables est appelée. Le setter pourrait probablement obtenir l'autre valeur lors de la création du nouveau dictionnaire.Cela pourrait être utilisé pour définir une vue personnalisée sur une barre de navigation unique au lieu d'un paramètre global
la source
Utilisez cette ligne de code
Je pense que cela vous sera utile.
la source