Frage

UIImageView *navBarImageView = [[UIImageView alloc] initWithImage:navBarImage];
[navBarImageView setFrame:CGRectMake(0, 0, 320, 44)];
self.navigationItem.titleView = navBarImageView;
[navBarImageView release];

Ich versuche, ein Bild zu meinem navigationbar hinzufügen, aber wenn ich den Code verwendet, wie oben aufgeführt, stellt sie das Bild in das navigationbar aber Blätter eine graue Lücke links und rechts des Bildes. Das Bild wurde bei 320x44 erstellt, ich bin nicht sicher, warum es es trotz der Tatsache, Ändern der Größe, dass ich den Rahmen setze.

War es hilfreich?

Lösung

Das ist ... wahrscheinlich nicht, wie Sie wollen, dass-es ist nicht das, was die titleView für ist. Der üblicher Weg, einen eigene Navigationsleiste Hintergrund zu tun, ist eine Kategorie UINavigationBar zu erstellen, etwa so:

 @implementation UINavigationBar(MyCustomBackground)
 - (void)drawRect:(CGRect)r
 {
      [[UIImage imageNamed:@"my-navigation-background.png"] drawInRect:self.bounds];
 }
 @end

Werfen Sie, dass in einer .m-Datei in Ihrem Projekt und Sie sollten alle Ihre Navigationsleisten verwenden „my-Navigation-background.png“ als Hintergrund sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top