В моем приложении для 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
хак, который я могу сделать, чтобы это сработало, или у вас есть совершенно лучший способ скрыть панель вкладок, которая бы устранила эту проблему?