gpt4 book ai didi

ios - 使 iOS View /约束适应所有 iPhone

转载 作者:搜寻专家 更新时间:2023-11-01 07:19:06 25 4
gpt4 key购买 nike

我正在使用 Xcode8 创建 iOS View ,我在 InterfaceBuilder 中配置它们,而且大部分时间也是以编程方式

我正在处理的 View 适用于每个版本的 iPhone,并且仅适用于 iPhone。 iPhone 4 和 iPhone 6s Plus 的屏幕尺寸差异太大,这让工作变得更加困难。

我知道 AutoLayout 提供了一个很棒的工具来管理 minimumFont(Scale|Size) 但这还不足以解决我的问题。我想根据屏幕尺寸缩放 一些 文本大小 并缩放一些约束

也许我的过程是错误的,但这就是我目前所做的......

  1. 我在每个 View Controller 中都有这段代码:
enum ButtonType {
case Title
case Subtitle
case Hint
case Feedback
case Button
}

func textSize(button: ButtonType) -> CGFloat {
switch (AppStyleKit.Size.screenSize()) {

case .Small:
switch (button) {
case .Title:
return 16
case .Subtitle, .Feedback:
return 13
case .Hint:
return 11
case .Button:
return 13
}
case .Medium:
switch (button) {
case .Title:
return 17
case .Subtitle, .Feedback:
return 14
case .Hint:
return 13
case .Button:
return 14
}
case .Big:
switch (button) {
case .Title:
return 18
case .Subtitle, .Feedback:
return 15
case .Hint:
return 14
case .Button:
return 15
}
}
}
  1. 我以这种方式设置每个 View 的字体大小:
hintLabel.font = UIFont(name: "FontName", size: textSize(.Hint))
  1. 我像这样单独设置一些约束的常量:
heighBetweenLabel1And2.constant = Device.IS_4_INCHES_OR_SMALLER() ? 8 : 15 
  1. 我还有其他约束,例如 AutoLayout 中屏幕高度的 2/100。因此,它们根据定义适应屏幕尺寸。

这行得通,但对我来说这似乎不是最佳选择。我想让它更易于维护。我认为在 InterfaceBuilder 中设置一些约束并以编程方式设置一些其他约束并不容易维护 😕

我知道这个问题已经被很多人问过了。我阅读了它们,但从未找到我想要的好答案。

永远不够 op op :/

欢迎提供帮助甚至简单的建议!

最佳答案

尝试在同一个元素上设置多个类型的相同约束,但改变每个约束的优先级。

例如:屏幕中央的 UIButton

A <code>UIViewController</code> with a <code>UIButton</code> in the center that has 3 height constraints.

我给了它 3 种不同的高度限制:

  • >= 30 @ 1000 优先级的高度
  • = 32 @ 999 优先级的高度
  • 高度 = 35 @ 998 优先级

此配置将确保按钮的高度始终至少为 30 点,但如果屏幕上有足够的空间,它会尝试扩展到 32 或 35。

现在具体设置当然取决于您的情况,但是如果您也想更改字体大小,请尝试结合使用 UIEdgeInsets 和最小字体大小来控制实际绘制文本的区域。

关于ios - 使 iOS View /约束适应所有 iPhone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40051805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com