【问题标题】:How can I correctly size UITabBarController icons?如何正确调整 UITabBarController 图标的大小?
【发布时间】:2020-08-21 19:37:34
【问题描述】:

我使用UITabBarController。在风景中它看起来不错:

虽然图片太大,但纵向显示:

图像在 xcassets 内,大小为 512px 平方并使用单一比例。

我像这样使用UITabBarViewController

let tabBarController = UITabBarController()
tabBarController.viewControllers = [Tab1Controller(), Tab2Controller()]

在 TabXControllers 中,我有:

title = "Tab X"
tabBarItem.image = UIImage(named: "Tab X")

更新:

我正在为 iOS 13 构建,因此https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/custom-icons/ 的 Apple HIG 在这种情况下无效(“iOS 12 及更早版本”)。我假设在 iOS 13 中的图标可能比在 iOS 12 中更大。它们会自动缩小(见第一个屏幕截图) 我做错了什么?

【问题讨论】:

    标签: ios swift image icons uitabbarcontroller


    【解决方案1】:

    适用于 iOS 12 及更低版本:

    阅读Human Interface Guidelines 的 Apple 文档

    标签栏图标大小

    在纵向中,标签栏图标显示在标签标题上方。在 横向,图标和标题并排显示。 根据设备和方向,系统会显示 常规或紧凑的标签栏。您的应用应包含自定义标签栏 两种尺寸的图标。

    目标宽度和高度(圆形字形)

    Regular tab bars    Compact tab bars
    75px × 75px (25pt × 25pt @3x)   54px × 54px (18pt × 18pt @3x)
    50px × 50px (25pt × 25pt @2x)   36px × 36px (18pt × 18pt @2x)
    

    目标宽度和高度(方形字形)

    Regular tab bars    Compact tab bars
    69px × 69px (23pt × 23pt @3x)   51px × 51px (17pt × 17pt @3x)
    46px × 46px (23pt × 23pt @2x)   34px × 34px (17pt × 17pt @2x)
    

    适用于 IOS 13 及更高版本

    在 iOS 13 或更高版本中,更喜欢使用 SF Symbols 来表示应用中的任务和模式。 SF Symbols 提供了一组超过 1,500 个一致的、高度可配置的符号,您可以在您的应用程序中使用。您还可以创建自定义 SFSymbols。根据苹果

    如果您需要 SF Symbols 未提供的符号,您可以创建 你自己。 SF Symbols 应用程序允许您将符号导出为模板 一种可重复使用的基于矢量的文件格式。要创建自定义符号, 导出与您想要的设计相似的 SF 符号并进行修改 使用 Sketch 或 Illustrator 等矢量编辑工具的模板

    【讨论】:

    • 有趣。那么图标在纵向使用时必须具有一定的大小,而不是横向使用?
    • 我刚刚看到,您链接的指南仅适用于 iOS 12 及以下版本。我假设在 iOS 13 中行为发生了变化,这就是为什么即使图标大小为 512 像素,横向版本也能正常工作的原因。问题仍然存在:为什么它不适用于纵向? (我正在为 iOS 13 开发)
    • 阅读第一行 .. 上面写着In iOS 13 or later, prefer using SF Symbols to represent tasks and modes in your app
    【解决方案2】:

    我也遇到了同样的问题,图片插入效果很好

    tabBarItem.imageInsets = UIEdgeInsets(top: 85, left: 85, bottom: 85, right: 85)
    

    【讨论】:

      猜你喜欢
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 2019-05-06
      • 2011-02-13
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      相关资源
      最近更新 更多