CustomNavigationBar mit eigener Höhe

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • CustomNavigationBar mit eigener Höhe

    Hey Leute,

    ich verzweifle gerade. Ich habe eine Custom NavigationBar gebastelt, welche eine angepasste Höhe hat.
    Soweit so gut. Im Storyboard gebe ich der NavigationBar die entsprechende Klasse und alles klappt.
    Wenn ich nun programmatisch in einen neuen ViewController pushe (hat im Storyboard keine NavigationBar, da sonst doppelt), ändert sich die Höhe wieder zur "Standardhöhe".

    In meinem FirstViewController pushe ich folgendermaßen in den zweiten ViewController:

    UIViewController *secondVC = [[UIStoryboard storyboardWithName:@"Main" bundle:NULL] instantiateViewControllerWithIdentifier:@"secondVC"];
    [self.navigationController pushViewController:secondVC animated:YES];

    Das klappt wie gesagt auch, nur es ist so, als ob er wieder die "Standard"NavigationBar nimmt.

    Ich komme echt nicht weiter :(

    Gruß,
    Florian

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Flolle ()

  • Das komplette Projekt wird mit Autolayout umgesetzt. Die angesprochene Methode sagt mir nichts. Die Höhe in der CustomNavigationBar ändere ich in der sizeThatFits-Methode. Das klappt auch.

    Vllt. ein Hinweis?! Er verkleinert(die Höhe) die Navigation-Bar beim View-Wechsel sogar mit einer Animation. Muss man die CustomNavigationBar dem Ziel-View irgendwie erneut zuordnen, oder müsste das vererbt werden?
  • Ich habe nun eine subclass UINavigationBar+Height.h/m angelegt und nun klappt es in allen Views.

    Allerdings habe ich nun einen seltsamen Abstand + Schatten nach oben hin. Habe schon so einiges ausprobiert. Aber es soll nicht klappen. Habt ihr eine Idee?

    --> (siehe rechts... keine Ahnung wo der schwarze Balken hinter der Statusbar kommt, sowie der Schatten + die paar Pixel Abstand nach oben)

    [Blockierte Grafik: http://www.florianreimann.de/topbarissue.png]


    Update:

    Es liegt auf jeden Fall an der eigenen initialize-Methode. Hier scheint etwas zu fehlen. Nehme ich den Aufruf weg, sieht alles Dufte aus. Naja... außer, dass das Logo fehlt.

    Quellcode

    1. - (id)initWithCoder:(NSCoder *)aDecoder {
    2. self = [super initWithCoder:aDecoder];
    3. if (self) {
    4. [self initialize];
    5. }
    6. return self;
    7. }
    8. - (id)initWithFrame:(CGRect)frame {
    9. self = [super initWithFrame:frame];
    10. if (self) {
    11. [self initialize];
    12. }
    13. return self;
    14. }
    15. - (void)initialize {
    16. UIImageView *titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Logo"]];
    17. titleView.contentMode = UIViewContentModeScaleAspectFit;
    18. titleView.frame = CGRectMake(0, 20, [UIScreen mainScreen].bounds.size.width, 46);
    19. [self addSubview:titleView];
    20. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Flolle ()