Chcę wstawić obraz .png na środku paska nawigacji zamiast tytułu napisanego w tekście. Czy mógłbyś dać mi znać, jak to zrobić?Jak umieścić obraz jako tytuł paska nawigacji?
Dzięki.
Chcę wstawić obraz .png na środku paska nawigacji zamiast tytułu napisanego w tekście. Czy mógłbyś dać mi znać, jak to zrobić?Jak umieścić obraz jako tytuł paska nawigacji?
Dzięki.
ustawić navigationItem za titleView
UIImage *image = [UIImage imageNamed:@"image.png"];
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:image];
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
Jaki jest rozmiar UIImage powinna być o tytuł ?? próbowałem z 180 * 40, ale robi się rozmycie. – Krunal
** self.navigationBar.topItem ** załatwił sprawę. Dzięki –
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
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. –
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
Dziękuję @ Michael-R .... Ale po dodaniu następującego kodu mój tytuł nawigacji nie jest wyświetlany – Cloy
Swift i iOS zmieniły niektóre od czasu opublikowania tej odpowiedzi, Ill staram się je szybko obejrzeć – rambossa
Działa idealnie jako to powinno być ... to rozwiązanie jest również przeznaczone dla rozmytych zdjęć .... –
Zaktualizowano Swift 2.x
navigationItem.titleView = UIImageView.init(image: UIImage(named:"yourImageName"))
jaki jest rozmiar UIImage powinien mieć tytuł? próbowałem z 180 * 40, ale robi się rozmycie. – Krunal
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
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) –