我正在使用 Xcode8 创建iOS视图,我在 InterfaceBuilder 中配置它们,并且大部分时间以编程方式配置。
我正在处理的观点仅适用于每个版本的iPhone ,而iPhone 仅适用于。屏幕尺寸与iPhone 4到iPhone 6s Plus的区别太大,这使得工作变得更加困难。
我知道 AutoLayout 提供了一个很棒的工具来管理minimumFont(Scale | Size),但这还不足以解决我的问题。我想缩放 一些文本尺寸,并根据屏幕尺寸缩放部分约束。
也许我的过程中出错了,但这就是我现在所做的......
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
}
}
}
hintLabel.font = UIFont(name: "FontName", size: textSize(.Hint))
heighBetweenLabel1And2.constant = Device.IS_4_INCHES_OR_SMALLER() ? 8 : 15
这样可行,但这对我来说似乎不是最佳选择。我希望更容易维护。我不认为在InterfaceBuilder中设置一些约束和其他一些以编程方式设置的约束很容易维护
我知道这个问题已被多人提出过。我读过它们,但我从来没有找到像我想的那样好的答案。
从来没有足够的操作:/
欢迎提供帮助甚至是简单的建议!