将自定义中心button添加到选项卡栏的最佳方式是什么?

许多应用程序都有一个标准的标签栏,在中间有一个自定义button,它执行一些特殊的function。 一些例子可以在这里find:

http://mobile-patterns.com/custom-tab-navigation

什么是实施这个最好的方法?

在这里你可以看到如何实现该button。 我要粘贴代码,以便它永远留在这里:

UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height); [button setBackgroundImage:buttonImage forState:UIControlStateNormal]; [button setBackgroundImage:highlightImage forState:UIControlStateHighlighted]; CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height; if (heightDifference < 0) button.center = self.tabBar.center; else { CGPoint center = self.tabBar.center; center.y = center.y - heightDifference/2.0; button.center = center; } [self.view addSubview:button]; 

希望能帮助到你

我得到了Franciso的代码,做了一些小小的调整。 我将代码放置在Xcode 4.1中的标准选项卡栏应用程序模板的应用程序didFinishLaunchingWithOptions方法中。 我相信Xcode 4.2可能有不同的模板。

 UIImage *buttonImage = [UIImage imageNamed:@"tabItemOff.png"]; UIImage *highlightImage = [UIImage imageNamed:@"tabItemSelected.png"]; UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height); [button setBackgroundImage:buttonImage forState:UIControlStateNormal]; [button setBackgroundImage:highlightImage forState:UIControlStateHighlighted]; CGFloat heightDifference = buttonImage.size.height - self.tabBarController.tabBar.frame.size.height; if (heightDifference < 0) button.center = self.tabBarController.tabBar.center; else { CGPoint center = self.tabBarController.tabBar.center; center.y = center.y - heightDifference/2.0; button.center = center; } [self.tabBarController.view addSubview:button];