Скрытие TabBar на iOS 11 с использованием Xamarin оставляет белый прямоугольник

Andrew спросил: 13 октября 2017 в 06:50 в: ios

До iOS 11 я использовал этот код внутри пользовательского средства визуализации для TabPage, чтобы условно скрыть панель Tab в моем приложении:

private void ToggleTabs(object sender, bool hideTabs)
{
    TabBar.Hidden = hideTabs;    TabBar.Frame = TabBar.Hidden
        ? new CGRect(TabBar.Frame.X, TabBar.Frame.Y, TabBar.Frame.Width, 0)
        : new CGRect(TabBar.Frame.X, TabBar.Frame.Y, TabBar.Frame.Width, tabBarHeight);
}

где tabBarHeight рассчитывается при построении TabBar (в зависимости от документации всегда должно быть 49, но я ненавижу магические числа).

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что, даже если я рушусь В кадре все еще остается белый прямоугольник, где раньше была панель вкладок. Я заметил только такое поведение на устройствах под управлением iOS 11, развернутых из XCode 9.

Я нашел некоторую информацию о SafeAreaInsets, которая, по моему мнению, могла вызывать проблему, но 0 всегда возвращается, если я не работаю на iPhone X, так что, похоже, это был провал.

Похоже, виноват SDK для iOS 11, но я не могу найти обходной путь.

0 ответов