使iOS视图/约束适用于所有iPhone
我使用Xcode8创建iOS视图,我在InterfaceBuilder中配置它们,而且大多数时间也是通过编程方式配置的 我正在处理的视图是针对每个版本的iPhone的,以及仅针对iPhone的。iPhone4和iPhone6sPlus的屏幕尺寸相差太大,这使得工作更加困难 我知道AutoLayout提供了一个很棒的工具来管理最小字体(缩放|大小),但这还不足以解决我的问题。我想缩放一些文本大小,并根据屏幕大小缩放一些约束 也许在我的过程中我错了,但这就是我目前所做的使iOS视图/约束适用于所有iPhone,ios,swift,interface-builder,Ios,Swift,Interface Builder,我使用Xcode8创建iOS视图,我在InterfaceBuilder中配置它们,而且大多数时间也是通过编程方式配置的 我正在处理的视图是针对每个版本的iPhone的,以及仅针对iPhone的。iPhone4和iPhone6sPlus的屏幕尺寸相差太大,这使得工作更加困难 我知道AutoLayout提供了一个很棒的工具来管理最小字体(缩放|大小),但这还不足以解决我的问题。我想缩放一些文本大小,并根据屏幕大小缩放一些约束 也许在我的过程中我错了,但这就是我目前所做的 我在每个视图控制器中都有以下
这是可行的,但对我来说似乎不是最佳的。我想让它更易于维护。我不认为在InterfaceBuilder中设置一些约束以及以编程方式设置一些其他约束是很容易维护的尝试在同一元素上设置多个类型的相同约束,但更改每个约束的优先级 例如:屏幕中央的
ui按钮
我给了它3种不同的高度限制:
- 高度
@1000优先级=30
- 高度
@999优先级=32
- 高度
@998优先级=35
UIEdgeInsets
和最小字体大小的组合来控制实际绘制文本的区域
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