按钮位于标签栏iOS xcode的中心

时间:2014-11-12 17:53:04

标签: ios objective-c iphone xcode

我认为我的头衔正是我想要的。所以,我有一个带有4个视图控制器的标签栏。我开始在故事板中配置我的应用程序,然后从那里配置我的标签栏控制器。我也在我的appdelegate文件中声明了视图控制器的名称。我的问题如下。我可以在标签栏控制器中间添加一个按钮吗?我搜索了很多关于这一点,我没有找到完整的解决方案。我可以使用storyboard将我的视图控制器连接到标签栏,还可以使用app委托将该按钮声明到标签栏的中心吗?请帮忙。到目前为止,这是我在代码委托文件中的代码(其他任何内容都在storyboard中,juts视图控制器连接到tabbarcontroller):

- (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;
}

谢谢。

2 个答案:

答案 0 :(得分:0)

如果您将4个页面连接到标准UITabbarController,它将布置4个按钮,平均分隔它们之间的空间。你无法控制他们的安排。您可以在故事板或代码中重新排列它们,但有4个按钮 - 中间没有按钮。

您可以添加第5个按钮并将其重新排列到第3个位置,因此这个按钮位于标签栏的中间。或者你可以寻找第三方自定义tabbar实现 - 在gitnub和其他地方有很多它们。其中一些将具有特定的中间页面,其风格与其他页面不同。

答案 1 :(得分:-2)

  

我可以在标签栏控制器的中间添加一个按钮吗?

假设您的意思是添加一个与其他标签栏项不同的按钮,那么不,UITabBar不提供此功能。正如UITabBar documentation中所述,标签栏中的所有项目都应该是标签栏项目,但您可以考虑使用UIToolbar

  

标签栏中的每个按钮都称为标签栏项,是一个实例   UITabBarItem类。如果您想要给用户一个栏   每个执行操作的按钮,使用UIToolbar对象。

从用户体验的角度来看(IMO),尝试混合标签栏和工具栏功能可能不是一个好计划。