2011-01-22 94 views
0

我有一个TabBarController应用程序。tabbar问题中的自定义按钮

该代码在didFinishingLaunching方法:

UIImage *buttonImage = [UIImage imageNamed:@"post-button2.png"]; 

UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom]; 

NSLog(@"Button size: %f, %f", buttonImage.size.width, buttonImage.size.height); 

button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height); 
[button setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

CGFloat heightDifference = buttonImage.size.height - self.tabBarController.tabBar.frame.size.height; 

NSLog(@"self.tabBarController.tabBar.frame.size.height: %f", self.tabBarController.tabBar.frame.size.height); 
NSLog(@"heightDifference: %f", heightDifference); 
NSLog(@"%Tabbar: %f, %f", tabBarController.tabBar.center.x, tabBarController.tabBar.center.y); 
if (heightDifference < 0) 
    button.center = tabBarController.tabBar.center; 
else { 
    CGPoint center = self.tabBarController.tabBar.center; 
    center.y = center.y - heightDifference/2.0; 
    button.center = tabBarController.tabBar.center; 
} 

NSLog(@"%Button: %f, %f", button.center.y, button.center.x); 

[tabBarController.view addSubview:button]; 

[self.window addSubview:tabBarController.view]; 
[self.window makeKeyAndVisible]; 

的输出是:

alt text

问题在哪里?我可以用硬编码解决:

CGPoint center = tabBarController.tabBar.center; 
center.x = 160.00; 
center.y = 455.50; 

button.center = center; 

但我不确定这是否正确。

Ty。

回答

0

要设置选项卡的图像,您需要设置与选项卡关联的视图控制器的tabBarItem。

请参阅UITabBarItem参考如何使用自定义图像创建一个。

因此,您使用自定义图像创建一个UITabBarItem对象,然后将其设置为该选项卡的viewcontroller的tabBarItem属性。

然后,UITabBarController将管理将图像放在正确的位置。

+0

它不是一个tabbar项目,它是tabbar上的一个自定义按钮。 – 2011-01-22 20:37:45