2009-05-14 11 views

Odpowiedz

116

ustawić navigationItem za titleView

UIImage *image = [UIImage imageNamed:@"image.png"]; 
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:image]; 
+2

jaki jest rozmiar UIImage powinien mieć tytuł? próbowałem z 180 * 40, ale robi się rozmycie. – Krunal

+0

To działa idealnie w systemie iOS 7.1 (bez "autoreleaseu", oczywiście) Rozmiar mojego obrazu wyniósł 296x40px (2x) i jest doskonały. Dziękuję Ci! – Alex

+0

po prostu dodaj napiwek. W szybkim czasie kod będzie następujący: let imgTitleBar = UIImage (o nazwie: "iphone-menu.png") self.navItem.titleView = UIImageView (image: imgTitleBar) –

11

Możesz zmienić wszystkie widoki w UINavigationBar. Jeśli próbujesz zmienić navigationBar w kontrolerze nawigacyjnym zrobić:

self.navigationItem.titleView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"] autorelease]; 

Jeśli tworzysz navigationBar samemu zrobić to samo, ale zamiast wywołania self.navigationItem połączenia: navigationBar.topItem

+4

Jaki jest rozmiar UIImage powinna być o tytuł ?? próbowałem z 180 * 40, ale robi się rozmycie. – Krunal

+0

** self.navigationBar.topItem ** załatwił sprawę. Dzięki –

0

Poszukiwanie odpowiedzi na to pytanie, Znalazłem ładne i proste rozwiązanie w Apple Discussions forum, nadrzędnymi -(void)drawRect:(CGRect)rect dla UINavigationBar:

@implementation UINavigationBar (CustomImage) 
- (void)drawRect:(CGRect)rect { 
    UIImage *image = [UIImage imageNamed: @"NavigationBar.png"]; 
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 
@end 
+0

Powiedziałbym, że to nie jest najlepsze rozwiązanie, ponieważ Tytuł można ustawić tak czy inaczej i jest bardziej jak hack, ale może łatwo rozwiązać problem i to działa. –

19

Swift
Zawiera zasugerował kadrowanie/skalowanie

let image : UIImage = UIImage(named: "image.png")! 
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 40)) 
imageView.contentMode = .ScaleAspectFit 
imageView.image = image 
self.navigationItem.titleView = imageView 
+0

Dziękuję @ Michael-R .... Ale po dodaniu następującego kodu mój tytuł nawigacji nie jest wyświetlany – Cloy

+0

Swift i iOS zmieniły niektóre od czasu opublikowania tej odpowiedzi, Ill staram się je szybko obejrzeć – rambossa

+0

Działa idealnie jako to powinno być ... to rozwiązanie jest również przeznaczone dla rozmytych zdjęć .... –

2

Zaktualizowano Swift 2.x

navigationItem.titleView = UIImageView.init(image: UIImage(named:"yourImageName")) 
Powiązane problemy