Xamarin.iOS: jak zdeterminowany wysokość na pasku stanu w ViewWillTransitionToSize

głosy
0

Muszę mieć, zawierającego:

  • MKMapView, aby wyświetlić niektórych elementów na mapie
  • UITableViewosadzone w sposób UIView, do wyświetlania pozycji na liście

Użytkownik musi być w stanie wyświetlić mapy lub listy, przesuwając się separator .

Działa to dobrze, ale ja napotkać problem, gdy użytkownik obraca ekran : w tym przypadku lista jest już prawidłowo wyświetlane.

Na stanowisko liście za UIView to setted określając To margines górny ograniczenie: po raz pierwszy poznać wysokość paska stanu (z UIApplication.SharedApplication.StatusBarFrame.Height).

Ale po rotacji, muszę przeliczyć to ograniczenie. Do tego staram się przeliczyć ograniczeń w ViewWillTransitionToSize().

Moim problemem jest to, że nie uzyskać oczekiwanej wartości podczas wywołania ViewWillTransitionToSize(): w „starej” wartość z StatusBarFrame.Heightjest setted.

Staram się też uzyskać statusu na pasku stanu z UIApplication.SharedApplication.StatusBarHiddenale problem jest taki sam.

Czy istnieje inny sposób pozwala mi uzyskać właściwą wysokość na pasku stanu podczas obrotu?

Utwórz 18/12/2018 o 11:06
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

Przetestowałem stan na pasku stanu w niewłaściwym miejscu:

public override void ViewWillTransitionToSize(CoreGraphics.CGSize toSize, IUIViewControllerTransitionCoordinator coordinator) 
{
    coordinator.AnimateAlongsideTransition((IUIViewControllerTransitionCoordinatorContext obj) => {
        // Define any animations you want to perform (equivilent to willRotateToInterfaceOrientation)
        // StatusBar status and height is not yet updated
    }, (IUIViewControllerTransitionCoordinatorContext obj) => {
        // Completition executed after transistion finishes (equivilent to didRotateFromInterfaceOrientation)
        // StatusBar status and height is well updated
    });

    base.ViewWillTransitionToSize(toSize, coordinator);
}

Jeśli test nie jest prawidłowo, to działa prawidłowo.

Odpowiedział 21/12/2018 o 16:22
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more