Я новичок в разработке IOS. Я столкнулся с проблемой динамической настройки изображений для элементов Tabbar. Я создал подкласс UITabbarItem.
@interface CustomTabBarItem : UITabBarItem
{
UIImage *customHighlightedImage;
UIImage *customStdImage;
}
@property (nonatomic, retain) UIImage *customHighlightedImage;
@property (nonatomic, retain) UIImage *customStdImage;
@end
И добавил мой tabbarcontroller в окно.
[_tabBarController setViewControllers: [[NSArray alloc] initWithObjects:1,2,3,4,nil] animated: YES];
_tabBarController.selectedIndex = 0;
_tabBarController.delegate = self;
_tabBarController.view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"tabbarBackground.png"]];
[self.window addSubview:_tabBarController.view];
self.window.rootViewController = _tabBarController;
[self.window makeKeyAndVisible];
Мой контроллер Tabbar отлично поддерживает все ориентации. Но проблема в том, что когда я поворачиваю устройство, как я могу установить изображения элементов панели вкладок для текущей ориентации устройства. Рамка автоматически устанавливается для каждой вкладки, но мои изображения - нет. У меня есть четыре вкладки в моем приложении. Я много искал на сайте, но не смог найти подходящего решения.
РЕДАКТИРОВАТЬ
Это код, который я использую для установки изображений.
tabBarItemBrowse=[[CustomTabBarItem alloc] init];
tabBarItemBrowse.imageInsets=UIEdgeInsetsMake(6, 0, -6, 0);
// tabBarItemBrowse.customStdImage=[UIImage imageNamed:@"browser.png"];
// tabBarItemBrowse.customHighlightedImage=[UIImage imageNamed:@"browser_act.png"];
if ( [UIApplication sharedApplication].statusBarOrientation==UIInterfaceOrientationPortrait || [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
tabBarItemBrowse.customStdImage=[UIImage imageNamed:@"browser.png"];
tabBarItemBrowse.customHighlightedImage=[UIImage imageNamed:@"browser_act.png"];
}
else
{
tabBarItemBrowse.customStdImage=[UIImage imageNamed:@"browser568.png"];
tabBarItemBrowse.customHighlightedImage=[UIImage imageNamed:@"browser_act568.png"];
}
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
BrowseNav = [[CustomNavigationControllerViewController alloc] initWithRootViewController:self.viewController];
BrowseNav.tabBarItem = tabBarItemBrowse;
BrowseNav.navigationBar.tintColor = [UIColor blackColor];
BrowseNav.navigationBarHidden=YES;
[tabBarItemBrowse release];