Я знаю, что это не идеально, но я действительно не хотел, чтобы где-нибудь была константа магического числа.Что я сделал, так это создал одноразовый UITabBarController и получил оттуда высоту.
Я сделал это также потому, что [UITabBar initWithFrame:] работает как нужно, но выполнение [bar setFrame:] - нет.Мне нужно, чтобы рамка была правильной при создании.
UITabBarController *dtbc = [[[UITabBarController alloc] init] autorelease];
CGRect tabRect = [[[self navigationController] view] frame];
tabRect.origin.y = tabRect.size.height - [[dtbc tabBar] frame].size.height;
tabRect.size.height = [[dtbc tabBar] frame].size.height;
tabBar_ = [[UITabBar alloc] initWithFrame:tabRect];
Что мне нравится в этом, так это то, что она будет правильно размещать панель вкладок внизу родительского элемента независимо от размера родителей.