2014-11-12 3 views
0

Я думаю, что мое название - это то, что я ищу. Итак, у меня есть панель вкладок с 4-мя контроллерами. Я начал настраивать свое приложение в раскадровке, и я настроил свой контроллер панели вкладок. Я также указал имена контроллеров вида в файле appdelegate. Мой вопрос следующий. Могу ли я добавить кнопку в середине моего контроллера панели вкладок? Я много искал об этом, и я не нашел полного решения. Могу ли я использовать раскадровку для подключения контроллеров просмотра к панели вкладок, а также делегата приложения, чтобы объявить эту кнопку в центре панели вкладок? Пожалуйста помоги. Это мой код до сих пор в приложении файл делегата (все остальное находится в раскадровке, торчит контроллеры просматривать подключенные к tabbarcontroller):Кнопка в центре панели вкладок iOS xcode

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
Assign tab bar item with titles 
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; 
tabBarController.selectedIndex = 1; 
UITabBar *tabBar = tabBarController.tabBar; 


UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0]; 
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1]; 
UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:3]; 
UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:4]; 


tabBarItem1.title = @"Tab1"; 
tabBarItem2.title = @"Tab2"; 

tabBarItem3.title = @"Tab3"; 
tabBarItem4.title = @"Tab4"; 




[tabBarItem2 setFinishedSelectedImage:[UIImage imageNamed:@"maps_selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"maps.png"]]; 


// Change the tab bar background 
UIImage* tabBarBackground = [UIImage imageNamed:@"TAPBARBGR.png"]; 
[[UITabBar appearance] setBackgroundImage:tabBarBackground]; 
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"tabbar_selected.png"]]; 

// Change the title color of tab bar items 
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
                [UIColor whiteColor], UITextAttributeTextColor, 
                nil] forState:UIControlStateNormal]; 
UIColor *titleHighlightedColor = [UIColor colorWithRed:153/255.0 green:192/255.0 blue:48/255.0 alpha:1.0]; 
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
                titleHighlightedColor, UITextAttributeTextColor, 
                nil] forState:UIControlStateHighlighted]; 




return YES; 
} 

Спасибо.

ответ

0

Если вы подключаете 4 страницы к стандартному UITabbarController, он будет размещать 4 кнопки, разделяя пространство между ними. У вас нет контроля над тем, как они заложены. Вы можете перестроить их в раскадровке или в коде, но с 4 кнопками - кнопка не будет посередине.

Вы можете добавить 5-ю кнопку и переставить ее на 3-ю позицию, так что она будет находиться в середине панели. Или вы можете искать сторонние пользовательские настройки табуляций - есть куча их на gitnub и других местах. Некоторые из них будут иметь специальную среднюю страницу, которая отличается от других.

-2

Могу ли я добавить кнопку в середине моего контроллера панели вкладок?

No.

Предполагая, что вы имеете в виду добавление кнопки отличается от других вкладки стержневых элементов, то нет, UITabBar не предусматривает этого. Как пояснили в UITabBar documentation, все элементы в панели вкладок, как ожидается, будет панель вкладок пунктов, но вы могли бы рассмотреть UIToolbar вместо:

Каждая кнопка в панели вкладок называется панель вкладок пункт и является экземпляром класса UITabBarItem. Если вы хотите дать пользователю панель кнопок, каждая из которых выполняет действие, используйте объект UIToolbar.

С точки зрения удобства пользования (IMO) это, вероятно, не очень хороший способ попытаться сочетать панель вкладок и функциональность панели инструментов.