2010-01-17 16 views
2

Quand je tournerai le tintColor en utilisant le code suivant cela fonctionnetintColor pour navigationBar

self.navigationController.navigationBar.tintColor = [UIColor brownColor];

Mais quand je tente de définir la couleur de teinte comme - `UIImage * navigationBarCol = [UIImage imageNamed: @" navigatorBar_color. png "];

self.navigationController.navigationBar.tintColor = [UICouleur colorWithPatternImage: navigationBarCol]; ` Ensuite, il ne montre pas la couleur exacte et ne montre qu'une nuance de noir. navigationBar_color.png est une image d'un seul pixel de la couleur que je veux définir. J'utilise cette méthode pour définir la couleur des lignes de tableau ou d'autres objets dans mon programme et cela fonctionne très bien.

De plus la méthode UIColor colorWithPatternImage est supposée retourner UIColor donc l'approche aussi me ressemble. Pouvez-vous s'il vous plaît me dire alors pourquoi la deuxième approche ne fonctionne pas bien pour navigatiorBar.

Répondre

1

Le paramètre tintColor on NavigationBars et les contrôles sont uniquement utilisés comme base pour calculer le gradient utilisé dans le contrôle. Vous ne pouvez pas très bien avoir une image en dégradé, donc c'est juste en utilisant une partie de celle-ci. Cela ressemble à ce que vous voulez est une sous-classe personnalisée de UINavigationBar, avec une méthode drawRect: substituée.