Высота UITabBar в iOS 5
С новыми API настройки в iOS 5, возможно ли увеличить высоту UITabBar? Если нет, какие есть варианты с открытым исходным кодом, если я хочу ориентироваться на iOS 5? Спасибо
5 ответов
Я бы предложил BCTabBarController. Я использовал его в одном из своих проектов, и он прекрасно работает. Вы все равно должны настроить его, хотя.
Мой способ настройки панели вкладок UITabBarController состоит в том, чтобы сначала настроить сам UITabBarController.
UITabBarcontroller имеет два подпредставления внутри. UITransitionView и UITabBar. UITransitionView - это область в верхней половине экрана, в которую вы помещаете свои контроллеры представления.
Чтобы настроить высоту панели UITabbar, вам также необходимо отредактировать фрейм UITransitionView. Так, например, если вы хотите изменить высоту, вы можете сделать;
[[tabbarController.view.subviews objectAtIndex:0] setFrame:CGRectMake(0, 0, 320, 440)];
[tabbarController.tabBar setFrame:CGRectMake(0, 440, 320, 50)];
Это создаст панель вкладок высотой 50 пикселей (по умолчанию это 48 пикселей).
Вы можете написать категорию UItabbar
вот код:
.h файл:
#import <UIKit/UIKit.h>
@interface UITabBar (NewSize)
- (CGSize)sizeThatFits:(CGSize)size;
@end
.m файл:
#import "UITabBar+NewSize.h"
@implementation UITabBar (NewSize)
- (CGSize)sizeThatFits:(CGSize)size {
CGSize newSize = CGSizeMake(size.width,44);
return newSize;
}
@end
а потом
#import "UITabBar+NewSize.h"
self.tabBarController = [[UITabBarController alloc] init];
[self.tabBarController.tabBar sizeThatFits:CGSizeMake(320, 44)];
self.tabBarController.tabBar.shadowImage = [[UIImage alloc]init]; //delete the default tabbar shadow!
Вы не можете сделать это с UITabBar
, Я хотел бы предложить вам создать свой собственный UIToolBar
и сделать его похожим на tabBar, и вы можете добавить UIButtons
к нему и заставить их выглядеть как tabBarItems
,
Это будет выглядеть как tabBar
и дает вам много места для настроек, вы также можете добавить к нему более 5 вкладок и реализовать анимацию "прокрутки" между кнопками.:)
Это невозможно с прокси UIAppearance
Я бы порекомендовал сделать это, используя методологию контейнера ViewController в UIViewController (он находится в разделе "Реализация контроллера представления контейнера"). Документы Apple в основном рассказывают вам, как создавать свои собственные.