Пользовательская панель вкладок не работает ScrollView - PullRequest
0 голосов
/ 21 декабря 2011

В моем приложении для iPhone я реализовал пользовательскую панель вкладок, которая прекрасно работает, никаких проблем нет. Однако есть одна проблема, с которой я сталкиваюсь: в основном моя пользовательская панель вкладок фактически не управляет представлениями панели вкладок, она просто сигнализирует базовому стандарту UITabBarController, что он должен setSelectedIndex:1, и т. Д. Это в основном только визуальный настраиваемая панель вкладок без какой-либо логики. Поэтому мне нужно скрыть базовый стандарт UITabBar, который выполняет всю грязную работу за кулисами.

Самая распространенная вещь, с которой я столкнулся с моим другом Google, это то, что люди использовали этот код, чтобы скрыть панель вкладок:

for(UIView *view in tabbarcontroller.view.subviews)
{
    if([view isKindOfClass:[AppTabBarController_iPhone class]])
    {
        [view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
    }

    else 
    {
        [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
    }
}

Действительно, это действительно отталкивает панель вкладок, но это вызывает еще одну проблему в любом представлении прокрутки: фоновое изображение каждого просмотра прокрутки повторяется для 44 пикселей (т.е. высота панели вкладок, которая была смещено вниз), и это создает поистине безобразный опыт.

Есть ли какой-то setFrame хак, который я могу сделать, чтобы это сработало, или у вас есть совершенно лучший способ скрыть панель вкладок, которая бы устранила эту проблему?

1 Ответ

1 голос
/ 21 декабря 2011

Просто мысль, вместо того, чтобы скрывать оригинальный UITabBar, почему бы вам просто не накрыть его своим UITabBar? Если у них разная высота, с тобой должно быть все в порядке.

Чтобы покрыть это, вы должны добавить свою пользовательскую панель вкладок в качестве подпредставления к главному окну.

...