Настройка TabBar в ios4 не работает в ios5 - PullRequest
1 голос
/ 23 ноября 2011

В моем приложении я хочу настроить шаблон панели вкладок, но моя цель развертывания - ios4, поэтому я использую код ниже в appDidBecomeActive в appDelegate.m, чтобы сделать это:

CGRect frameTab = CGRectMake(0, 0, 480, 49);
UIView *viewTab = [[UIView alloc]initWithFrame:frameTab];
UIImage *tabBarBackground = [UIImage imageNamed:@"tab_bar.png"];
UIColor *tabColor = [[UIColor alloc]initWithPatternImage:tabBarBackground];
[viewTab setBackgroundColor:tabColor];
[[myTabBarController tabBar] insertSubview:viewTab atIndex:0];

Когда я запускаю приложение с помощью имитатора 4.3, оно работает правильно, но когда я имитирую в ios5, оно не работает, вкладка возвращается к черному цвету ... любая помощь?

Спасибо.

1 Ответ

1 голос
/ 23 ноября 2011

в iOS 5 есть новое свойство backgroundImage в классе UITabBar, и вы должны использовать его:

UIImage *tabBarBackground = [UIImage imageNamed:@"tab_bar.png"];
if ([[myTabBarController tabBar] respondsToSelector:@selector(setBackgroundImage:)]){
     [[myTabBarController tabBar] setBackgroundImage: tabBarBackground];
}
else{
    // If no backgroundImage property (pre iOS5) use your old code
    CGRect frameTab = CGRectMake(0, 0, 480, 49);
    UIView *viewTab = [[UIView alloc]initWithFrame:frameTab];
    UIColor *tabColor = [[UIColor alloc]initWithPatternImage:tabBarBackground];
    [viewTab setBackgroundColor:tabColor];
    [[myTabBarController tabBar] insertSubview:viewTab atIndex:0];
}
...