代码中的 iOS 屏幕尺寸,这是可选的吗?

标签 ios screen-orientation

在一些应用程序中有屏幕尺寸的设置。与常规约束设置相比,优势与劣势是什么?

例子:

 struct Setting {
        struct Small {
            static let phoneSE: CGFloat = 11.0
            static let phone: CGFloat = 13.0
            static let phonePlus: CGFloat = 14.0
        }

        struct Medium {
            static let phoneSE: CGFloat = 12.0
            static let phone: CGFloat = 14.0
            static let phonePlus: CGFloat = 15.0
        }

        struct Large {
            static let phoneSE: CGFloat = 13.0
            static let phone: CGFloat = 15.0
            static let phonePlus: CGFloat = 16.0
        }

这些值是特定的字体大小值。

这些值经常会因用途而改变,一些值可能是字体大小或 img 大小。这样的做法是好的做法还是矫枉过正?

最佳答案

针对特定设备进行编码通常不是“良好做法”。或者换句话说,它“针对大小类(使用自动布局约束)进行编码并尽可能使用动态类型(而不是特定字体大小)的良好做法。为什么?因为当 Apple 发布新内容时- 就像去年 4 月的 10.5 英寸 iPad Pro 或今年 9 月传闻中的 iPhone Pro - 如果对代码有任何影响,您无需做太多事情。

它将“正常工作”。

也就是说,以下是您可能需要针对特定​​设备(或更准确地说,特定屏幕尺寸)进行编码的一些原因:

  • UI 在 iPad 和 iPhone“Plus”上的方向发生变化。无论方向如何,尺寸等级始终是规则的。
  • 字体大小,如您的示例所示。

我相信还有更多。但在这两种情况下——实际上,在所有情况下——努力使用 Apple 提供给你的东西是“良好做法”。如果可能,请重构您的 UI。节省不必要的持续维护。

关于代码中的 iOS 屏幕尺寸,这是可选的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45682305/

相关文章:

css - iPhone Safari CSS 旋转错误

android - 在聊天应用程序中使用什么通知系统?

ios - Xcode Instruments 8.3 显示设置按钮丢失

ios - CMDeviceMotion 标题为 -1.0

ios - 如何使用自动布局堆叠 3 个 UI 元素

iphone - uiscrollview滚动时如何添加声音

android - 自动调整编辑文本和按钮的大小和位置

iOS:即使使用 shouldAutorotateToInterfaceOrientation 也不会调用 willAnimateRotationToInterfaceOrientation

flutter - 在 Flutter 中锁定每个屏幕的屏幕方向在 iPad 上不起作用

android - 应用小部件更新问题 : Failed Binder Transaction, RemoteViews、setImageURI 和方向更改