相对于屏幕尺寸的缩放和定位

时间:2017-07-23 23:12:18

标签: ios xcode8 ios-autolayout

我一直在使用大小类和Autolayout查看许多不同的解决方案,但仍然无法在不同大小的屏幕上获得一致的UI。这似乎是一个非常微不足道的事情,但我在第二天与此斗争。我正在我的故事板上开发iPhone 7,但是当我将预览切换到其他设备时,布局变得混乱。以下是展示此问题的两个屏幕截图:iPhone7ViewiPhone4sView

我尝试了什么:
对于应用程序标签,我将前导,尾随,垂直间距设置为顶部布局指南,以及从应用程序标签到电子邮件文本字段的垂直间距。
对于电子邮件字段,我将前导,尾随和顶点空间设置为密码字段 对于密码字段,我将前导,尾随和垂直空间设置为登录按钮 对于登录按钮,我将前导,尾随和垂直间距设置为底部布局指南。

此外,我还设置了约束,以便电子邮件密码字段具有相同的宽度和高度。

是否可以仅使用故事板实现此目的,并使视图适应屏幕大小?

2 个答案:

答案 0 :(得分:0)

是的,这是可能的。这就是我要做的......

对于App标签:

  • 锚定到父级的顶部布局指南。
  • 水平对中居中。
  • 让文字决定其余部分。

登录/注册按钮:

  • 锚定到父母的底部布局指南。
  • 锚定到父级的前沿和后沿。
  • 让文字确定身高。

对于密码文本字段:

  • 登录/注册按钮的垂直空间
  • 锚定到父级的前沿和后沿。
  • 修复身高。

对于电子邮件文本字段。

  • 密码字段的垂直空间
  • 锚定到父级的前沿和后沿。
  • 修复身高。

在回复您的评论时,您不能在故事板中使用具有约束的百分比。如果要使用百分比,则必须在代码中调整约束。

另一种选择是使用堆栈视图。这是一个例子:

https://www.dropbox.com/s/d7yfgjvafweqykq/example.storyboard?dl=0

答案 1 :(得分:0)

我会降低固定常量约束的优先级,然后为所需的最小间距创建另一组更灵活的约束。

作为我的意思的一个例子,对于App Name标签,你将保留你拥有的原始顶部空间约束,但是将优先级降低到比如750.然后你会为顶部间距和make创建另一个约束。它类似于> = 40(无论你想要最小间距),并且优先级应该高于原始约束(即保持在1000)。