UITabBar und UINavigationBar animiert in iOS7 verstecken

  • UITabBar und UINavigationBar animiert in iOS7 verstecken

    Morgen,

    da iOS7 ja mittlerweile raus ist, kann man auch hier ohne Probleme iOS7 spezifische Fragen stellen;) Ich habe einen UITabBarController, der unter anderem einen UINavigationController beinhaltet. In diesem UINavigationController befindet sich eine collectionView mit Bildern. Wenn der Benutzer diese durchscrollt, sollen sich sowohl die NavigationBar als auch die TabBar ausblenden. Unter iOS6 funktioniert das ganze auch ganz gut über:

    Quellcode

    1. [self.navigationController setNavigationBarHidden:YES animated:YES];
    2. self.tabBarController.tabBar.transform = CGAffineTransformMakeTranslation(0, 50);


    Jedoch verhält sich das Ganze in iOS7 leider nicht wie erwartet.

    1.: Die NavigationBar blendet zwar aus, jedoch beginnt die collectionView dann wirklich bei {0,0} des UIWindows, also auch UNTER der StatusBar. Ich dachte eigentlich das kann ich mit

    Quellcode

    1. self.extendedLayoutIncludesOpaqueBars = YES;
    2. self.edgesForExtendedLayout = UIRectEdgeNone;


    verhindern. Aber diese Zeilen bewirken bei mir rein gar nix. Evtl. verstehe ich diese Parameter auch nicht richtig, denn in der Dokumentation ist beschrieben, dass diese Werte das „extended Layout“ beeinflussen. Was ist hiermit genau gemeint?

    2.: Die TabBar hinterlässt in iOS7 nach der Transformation einen unschönen weißen Bereich. Das Ganze funktioniert zwar über

    Quellcode

    1. CGRect tmp = self.tabBarController.view.frame;
    2. tmp.size.height -= 50;
    3. self.tabBarController.view.frame = tmp;


    fühlt sich aber nicht wirklich rund an (in der Animation/Haptik). Hat hier evtl. jemand einen besseren Ansatz?


    Schonmal vielen Dank & Grüße
    Dennis
    "Die Steinzeit ging auch nicht zu Ende weil die Steine ausgingen"
  • jakez schrieb:

    self.extendedLayoutIncludesOpaqueBars = YES;

    Das macht genau nicht das, wofür Du es vielleicht hältst: Opak = Nicht Transparent => erweitertes Layout auch unter nicht transparente Leisten? Das willst Du nicht.

    Die Extend-Edges beziehen sich anscheinend nicht auf die Statusleiste; Unter iOS 7 gibt's leider keine zukunftssichere Möglichkeit, die Statusleiste opak zu schalten. Das wäre nämlich die sauberste Lösung.
    „Meine Komplikation hatte eine Komplikation.“