【问题标题】:UITabBarItem title positionUITabBarItem 标题位置
【发布时间】:2012-04-28 21:03:19
【问题描述】:

在网上搜索有关如何调整 UITabBarItem 标题位置的位置时,我遇到了 this 类似的帖子,但仍然想知道如何做到这一点。

是否可以从下往上稍微调整一下标题位置? (例如 5px)我需要这个,因为我有自定义图像,现在标题的位置并不完美。

【问题讨论】:

    标签: iphone objective-c uitabbaritem


    【解决方案1】:

    为什么不为视图控制器设置一个空的标题属性并将标题添加到选项卡的自定义图像中?

    您可以这样做(在 iOS 5.0 中):

    UIImage* iconSelected = [UIImage imageNamed:@"tabIconSelected.png"];
    UIImage* iconNotSelected = [UIImage imageNamed:@"tabIconNotSelected.png"];
    UITabBarItem *updatesListItem = [[UITabBarItem alloc] initWithTitle:@"" image:iconSelected tag:0];
    [updatesListItem setFinishedSelectedImage:iconSelected withFinishedUnselectedImage:iconNotSelected];
    [navigationController setTabBarItem:updatesListItem];
    

    其中tabIconSelected.pngtabIconNotSelected.png 都包含选项卡的标题文本。

    我写了一篇简短的文章"Add some colour to your UITabBar icons",它解释了如何使用带有标签的自定义图像。

    希望这会有所帮助。

    【讨论】:

    • 这个答案不适合本地化或可访问性...
    【解决方案2】:

    如果你想向上移动,只需将垂直偏移设置为负值

    UITabBarItem* it = [[self.tabController.tabBar items] objectAtIndex:0];
    it.titlePositionAdjustment = UIOffsetMake(0.0, -2.0);
    

    你不必像这里UITabBarItem title in centre of title, not at bottom那样使用代理。你可以定义每个项目的偏移量。

    【讨论】:

      【解决方案3】:

      懒人的 Swift 版本 :)

      UITabBarItem.appearance().titlePositionAdjustment = UIOffsetMake(0.0, -4.0)
      

      【讨论】:

        【解决方案4】:

        objective-C 中的全局调整:

        [[UITabBarItem appearance] setTitlePositionAdjustment:UIOffsetMake(0, -4)];
        

        【讨论】:

          【解决方案5】:

          如果你想全部更新:

          tabBar.items?.forEach({ $0.titlePositionAdjustment = UIOffset(horizontal: 0.0, vertical: -2.0) })
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-07-31
            • 1970-01-01
            • 2012-04-06
            • 2017-08-09
            • 1970-01-01
            相关资源
            最近更新 更多