ios - 设置 UITabBar 的高度

标签 ios tabbar

我通过设置每个项目的图像创建了一个简单的自定义标签栏,如下所示:

UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
UITabBarItem *item2 = [tabBar.items objectAtIndex:2];

[item0 setFinishedSelectedImage:[UIImage imageNamed:@"activity_active.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"activity.png"]];
[item1 setFinishedSelectedImage:[UIImage imageNamed:@"agenda_active.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"agenda.png"]];
[item2 setFinishedSelectedImage:[UIImage imageNamed:@"settings_active.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"settings.png"]];

虽然效果很好,但我注意到我的标签栏下方有一个黑色空白区域

enter image description here

我的图片高度为 44 像素,但我想我必须以某种方式更改标签栏的高度。

最佳答案

tabBar 本身是 49px,它在你的图像后面呈现为黑色(可能在 [UITabBar layoutSubviews] 中)。然后你的图像被渲染在上面。偏移的原因是因为您提供的图像太大,UITabBar 需要 30x30px 图标,而不是整个 UITabBarItem 的图片。

这里有一些尝试:

  1. 仅提供一个 30x30 像素的图标,而不是整个标签按钮
  2. 在选项卡项上设置图像后,试试这个: [项目 setImageInsets:UIEdgeInsetsMake(6, 0, -6, 0)];//玩 insets 直到它正确呈现
  3. 继承 UITabBar 并覆盖 layoutSubviews 以首先调用 super,然后根据需要重新定位图像。不推荐,它可能会在未来的 iOS 版本中损坏。

关于ios - 设置 UITabBar 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10680111/

相关文章:

flutter - 带有列的应用程序底部的 TabBar

ios - 如何在 swift 3.0 中使用自定义 UI 创建标签栏

ios - 在基于标签栏的应用程序上使用 UINavigationController 将数组添加到 UITableView

ios - Collection View 单元格边框颜色在 Swift 3 中取消选择

ios - TestFlight 中的独立应用程序用于生产和暂存?

ios - 将 UITabBarController 推送到另一个 UITabBarController

iOS-如何使用动画隐藏/显示 UITabBarController 标签栏?

ios - 用 Metal 调用顶点着色器多少次?

ios - Xcode 和广色域图像

ios - 将 textView 设置为从顶部开始(Swift)