通过子类化和重写initWithFrame自定义UITabBar(背景图像)

时间:2012-08-05 21:46:00

标签: objective-c uitabbar

似乎有很多不同的方法来改变UITabBar的外观。我发现在iOS 5中,UITabBar有一些新属性,例如backgroundImage。但是,我如何以及在何处设置它?

我想继承UITabBar并覆盖initWithFrame方法,设置背景图片。

虽然我已经创建了一个新类@interface UITabBarClass : UITabBar,但在initWithFrame的实现中添加了以下代码:

- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        // Change background image
        UIImage *backgroundImage = [UIImage imageWithContentsOfFile:@"uitabbar-background-normal"];

        self.backgroundImage = backgroundImage;
    }
    return self;
}

背景图片不会改变。我也尝试用相同的方法编写日志,并且在运行时没有记录。

任何人都可以提供帮助或提供建议吗?

提前致谢! :)

2 个答案:

答案 0 :(得分:1)

我通过遵循本教程修复此问题,请注意您不需要创建'tabBar1',只需使用self.tabBarhttp://www.jondack.com/index.php/2010/12/16/customizing-the-background-of-a-uitabbarcontroller/

答案 1 :(得分:0)

使用

self.tabBarController.tabBar.backgroundImage = [UIImage....];

tabBarController是Tab Bar Controller的名称。