【问题标题】:Customize the More UIBarButtonItem in UITabBar自定义UITabBar中的More UIBarButtonItem
【发布时间】:2012-08-27 23:08:57
【问题描述】:

从 iOS 5 开始,Apple 提供了一个 API 来自定义 UITabBar 对象中的 UITabBarItems。我特指以下选择器:

setFinishedSelectedImage:withFinishedUnselectedImage:

这一切都适用于常规按钮,但我似乎无法自定义“更多”按钮以匹配其他按钮的样式。这就是我正在做的事情:

tabBarController.viewControllers = tabBarControllerArray;
    tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor blackColor];
    UITabBarItem *more = tabBarController.moreNavigationController.tabBarItem;
     if ([more respondsToSelector:@selector(setFinishedSelectedImage:withFinishedUnselectedImage:)]){
        [more setFinishedSelectedImage:[UIImage imageNamed:@"BarIcon-More.png"]
           withFinishedUnselectedImage:[UIImage imageNamed:@"BarIcon-More.png"]
         ];
    } else {
        more.image = [UIImage imageNamed:@"BarIcon-More.png"];
    }

结果如下,没有拾取我自定义的More图片。

我已经看到了许多替换更多按钮的技巧,但是必须有更好的方法来做到这一点吗?

【问题讨论】:

    标签: ios5 customization uitabbar uitabbaritem


    【解决方案1】:

    解决方案很愚蠢。

    我认为moreNavigationController 中的UITabBarItems 是只读的,但事实并非如此。所以只需执行以下操作:

    tabBarController.moreNavigationController.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"More" image:[UIImage imageNamed:@"BarIcon-More.png"] tag:0];
    

    和上面一样的自定义代码也可以工作。

    【讨论】:

    • 这似乎不适用于 iOS 6。在 more 控制器上设置 tabBarItem 属性没有任何作用。我可以在调试器检查之前和之后跨过分配行并且它不会改变。还有其他解决方案吗?
    猜你喜欢
    • 2011-02-03
    • 1970-01-01
    • 2012-06-15
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多