【问题标题】:How to resize between 3.5" and 4" screens (dynamic constraints in autolayout?)如何在 3.5" 和 4" 屏幕之间调整大小(自动布局中的动态约束?)
【发布时间】:2013-10-26 08:58:35
【问题描述】:

我有一个用背景图像填充屏幕的视图。其他视图(文本字段)位于确切位置(背景图像包括文本字段背景图像)。当我从 3.5" 屏幕更改为 4" 时,文本字段不会以与背景调整大小相同的方式更改。 bg 图像只是调整大小以填充屏幕,但文本字段会跳出对齐。

有没有办法有两组约束,每个屏幕尺寸一组?或者有没有办法让视图按比例调整到另一个视图?

编辑:

【问题讨论】:

  • 您目前是如何定义约束的?在代码中,还是在界面构建器中?你的目标是什么布局?
  • 约束在界面生成器中。当我更改为 4" 屏幕时,所有视图都会尝试重新排列自己,这让我认为可以正确调整它们的大小。
  • 我想我真正想要的是每个视图都表现得好像它的框架覆盖了整个屏幕(然后有很多不可见的空间),当屏幕改变大小时,框架被拉伸以仍然覆盖整个屏幕。
  • 您可以添加显示约束的布局屏幕截图吗?你的问题听起来很直截了当,但你可能被界面生成器打败了,而且它的 UI 不明显。
  • 我添加了一些屏幕截图。橙色文本以及图像及其框都是单个背景图像的一部分。所有 uitextfields 在它们自己和屏幕左侧之间都有一个约束,这就是那里没有问题的原因。纵向上,“用户名”对屏幕顶部有约束,“你要发给我什么”在底部,所有其他都相互约束,从“你要发给我什么”向上,但没有任何连接到“用户名”。我真正想要的是拥有两组约束而不需要大量/任何数量的编程

标签: xcode constraints autolayout screen-size


【解决方案1】:

有没有办法有两组约束,每个屏幕一个 尺寸?

是的,通过以编程方式添加约束并检查 [[UIScreen mainScreen] bounds] 以获取屏幕大小。

或者有没有办法让视图按比例调整到另一个视图?

是的,您可以在界面生成器中进行设置。但这很难管理,我会在代码中手动管理约束,因为您使用的是自定义背景图像,文本视图需要准确定位

【讨论】:

    【解决方案2】:

    您将很难让这些东西与作为背景图像一部分的文本视图背景正确对齐。

    您应该修改您的图片资源并使用UITextFieldbackground 属性来获得一个实际的背景图片,并从您的主背景图片中删除这些框。图标也可以是单独的图像。

    否则,将图像拉伸到文本框下方而不是顶部会更有意义。

    您的布局正在根据您的描述执行应执行的操作,但图像未以正确的方式拉伸。在您的屏幕截图中,用户名始终与顶部的距离相同,而其他用户名与底部的距离相同,但这不是图像拉伸的工作原理。我不知道你是如何设置它的,但是有一个 4 英寸屏幕大小的单个图像是有意义的,它的底部截断了 3.5 英寸设备,并从顶部限制所有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      相关资源
      最近更新 更多