tabbar问题中的自定义按钮

时间:2011-01-22 16:09:43

标签: iphone button tabbar

我有一个TabBarController应用程序。

这段代码在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;

但我不确定这是否正确。

1 个答案:

答案 0 :(得分:0)

要设置选项卡的图像,您需要设置与选项卡关联的viewcontroller的tabBarItem。

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

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

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