根据 iPhone 用户使用的内容更改约束值
changing constraints values depending on which iPhone the user use
因为所有 iPhone 都在使用 wC hR 屏幕类别,所以我无法找到一种方法来更改 iPhone 11 Pro max 和 iPhone 8 之间的某些限制有一个非常不同的屏幕尺寸。
有办法吗?或者我只需要想出适合所有 iPhone 屏幕尺寸
的设计
我认为检查每个 iPhone 模型并不是真正可扩展的,而且似乎也是多余的。
1) 在我看来你可以做的事情是 从你想要支持的基础 iPhone 模型开始,比方说 iPhone SE,制作您的设计非常适合 iPhone SE 和 ,然后在运行时放大到当前设备屏幕尺寸 。
您将得到一个 scale ratio
,例如 1.2、1.8.. 等,您可以(在运行时)将其应用于 font sizes
等约束:
var scaleRatio: CGFloat = {
let iPhoneSEWidth: CGFloat = 320
let currentDeviceWidth = UIScreen.main.bounds.size.width
return currentDeviceWidth/iPhoneSEWidth
}()
并且可以这样应用:
label.font = font.size(12 * scaleRatio)
其中 12 是适合 iPhone SE(您的基础)的字体大小,然后在运行时它会缩放到您的基础屏幕大小与当前 iPhone 屏幕大小之间的当前比率.
2) 您可以在 UI 设计中做的另一件事可能不是定义特定约束,例如 width
或 height
或其他 anchor
常量是定义一个视图的锚点约束与其他视图的锚点约束成比例;例如,您可能希望视图的宽度始终是其容器宽度的一半或视觉上大约一半,您可以使用 multiplier
:
childView.widthAnchor.constraint(equalTo: containerView.widthAnchor, multiplier: 0.5).isActive = true
这完全取决于哪种策略更适合哪种 constraints
你想扩大规模,以及你想如何扩大规模,但我认为遵循这两种心态,可以给你带来一个好的UI 在不同 iPhone 屏幕中缩放。
因为所有 iPhone 都在使用 wC hR 屏幕类别,所以我无法找到一种方法来更改 iPhone 11 Pro max 和 iPhone 8 之间的某些限制有一个非常不同的屏幕尺寸。
有办法吗?或者我只需要想出适合所有 iPhone 屏幕尺寸
的设计我认为检查每个 iPhone 模型并不是真正可扩展的,而且似乎也是多余的。
1) 在我看来你可以做的事情是 从你想要支持的基础 iPhone 模型开始,比方说 iPhone SE,制作您的设计非常适合 iPhone SE 和 ,然后在运行时放大到当前设备屏幕尺寸 。
您将得到一个 scale ratio
,例如 1.2、1.8.. 等,您可以(在运行时)将其应用于 font sizes
等约束:
var scaleRatio: CGFloat = {
let iPhoneSEWidth: CGFloat = 320
let currentDeviceWidth = UIScreen.main.bounds.size.width
return currentDeviceWidth/iPhoneSEWidth
}()
并且可以这样应用:
label.font = font.size(12 * scaleRatio)
其中 12 是适合 iPhone SE(您的基础)的字体大小,然后在运行时它会缩放到您的基础屏幕大小与当前 iPhone 屏幕大小之间的当前比率.
2) 您可以在 UI 设计中做的另一件事可能不是定义特定约束,例如 width
或 height
或其他 anchor
常量是定义一个视图的锚点约束与其他视图的锚点约束成比例;例如,您可能希望视图的宽度始终是其容器宽度的一半或视觉上大约一半,您可以使用 multiplier
:
childView.widthAnchor.constraint(equalTo: containerView.widthAnchor, multiplier: 0.5).isActive = true
这完全取决于哪种策略更适合哪种 constraints
你想扩大规模,以及你想如何扩大规模,但我认为遵循这两种心态,可以给你带来一个好的UI 在不同 iPhone 屏幕中缩放。