更改系统tab栏的标题

新建一个工程,模版选择Tabbed Application。运行可以得到以下界面:

3FD635B1-38EA-441E-9774-823623D6B2BD.png

接下来我们希望First显示的是一个星星的图标,切好系统有预定义,所以我们来设置它:

EE5EEEAD-6122-46B5-B714-E804FDE9E143.png

运行。得到我们想要的结果:

AC87CE91-682F-4FA2-BB6B-B3D800A35CD3.png

我们想把这个图表底下的文字显示成最爱。在title属性中设置,回车确认,发现System Item变为了Custom。运行结果并不是我们所预期的一个星星图标,且文字是最爱。

![9A9F4E60-1D9D-4E9B-B754-73020640F548.png](http://upload-images.jianshu.io/upload_images/45400-e815ed8e704b1b3e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

也就是说,如果你想用系统的图标,那么文字是不能改的,必须配套使用。那么有办法更改文字吗?有的。

我们子类化一个UITabBarController。并在viewDidLoad中更改。

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self.tabBar.items enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        UITabBarItem * item = obj;
        
        switch (idx) {
            case 0:
                [item setValue:@"最热" forKeyPath:@"_view._label._content"];
                break;
            default:
                break;
        }
    }];
}

在运行一下:

0A0732D0-6ACB-4573-9B55-01AA938C04EA.png

结果正是我们想要的。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 71,152评论 12 116
  • webpack有什么作用? Webpack 是一个前端资源加载/打包工具,只需要相对简单的配置就可以提供前端工程化...
    宁静的夜阅读 2,260评论 0 4
  • 今天晚上我在网上算了一次塔罗牌,算的爱情,她问了我很多问题,其中一个问的是0~20之间选一个数字,我选了9这个...
    渝_阅读 252评论 0 2
  • 有些技能,你不在其位,无法习得其精髓。中国有句古话,不入虎穴焉得虎子?机缘巧合,我有机会在一家本地自媒体公司就职一...
    小饿阅读 577评论 1 3
  • 房价从2004年起,经过了一轮又一轮的上涨。众所周知2016年房价高涨,我生在湖北,对武汉的房价更加了解,2017...
    熊猫与小牛牛阅读 111评论 0 4