【问题标题】:Xcode how to make flexible constraint in AutolayoutXcode如何在Autolayout中进行灵活约束
【发布时间】:2018-09-20 15:14:07
【问题描述】:

大家好,我遇到了自动布局问题

我有登录情节提要,其中包含三个项目 Image-view , Stack-view , Button 就像下面的第一张图片

我尝试使用两种方式添加约束:

如下图 1 所示,我将“固定”约束添加到图像视图的第一种方式,但是当我更改为横向时,图像消失为下面的第二张照片。
请注意我没有收到任何警告

我尝试的第二种方法是使用视图包装图像视图,然后我添加了 要查看的“固定”约束 最后我在容器中的图像视图和水平和垂直添加了固定的宽度和高度,但我得到了第三张和第四张照片的结果

我应该怎么做才能使我的图像视图适应所有屏幕?

谢谢

Photo1 Photo2 Photo3 Photo4

【问题讨论】:

  • 能否请您描述/展示您想要的横向 UI 是什么?要考虑的一个潜在途径是使图像视图的高度占整个视图高度的百分比,然后固定图像视图的纵横比。
  • 感谢您的重播
  • 我想以小尺寸横向显示所有项目,纵横比固定约束是否相对于屏幕尺寸,换句话说,我可以用它来添加项目的百分比大小,你的意思是什么?

标签: ios iphone xcode autolayout


【解决方案1】:

换成横屏时高度变化很大。 Autolayout 设计的问题在于它不适应横向和纵向模式,因为您为布局提供了固定的 hightwidth

使您的 image-view 适应所有屏幕,将您的 image-view height 设置为 superview heightpercentage 所以在横向模式下高度会改变你的图像视图仍然会以完全相同的 percentage 从 superview height 获得 height

看看这个演示希望这会有所帮助。 Autolayout

  • 首先将 UIImageView 放到 ViewController 中。
  • 给它一个顶部约束并将它水平对齐到它的 SuperView。 现在它只需要高度和宽度。
  • 然后CtrlImageView拖动到本身选择纵横比。给 一个方面 ratio 1:1(它只是告诉 storyboard 如果有任何 height 或 宽度 可用我希望另一个与 width 相同 那么 height 应该与 width 相同,height 反之亦然),如您所愿 适合您的个人资料 ImageView 的完美方形。

  • 现在 CtrlImageView 拖动到 SuperView 并选择 等高

  • 现在您的 ImageView 将 height 设置为 SuperView Height。 给你的 ImageView 比例高度(百分比,Aspect Ration or Multipiler)到 SuperView 你想给多少喜欢 所以。

最后,您的 UIImageView 将获得与 SuperView 高度成正比的高度,反之亦然。

【讨论】:

  • 如何为图像视图添加高度百分比?你能写出制作的步骤吗?以百分比和纵横比添加高度有什么区别?
  • 纵横比是图像或任何 UI 元素的宽度与其高度之间的比例关系,例如 1:2,简化形式(百分比)将是 50%,这取决于你想要什么选择。
  • 我也编辑了答案看看。如果它确实解决了您的问题,请给它投票,标记为已回答并关闭问题。
  • 感谢您解决了我的问题,感谢您的努力,您能否给我参考以了解有关纵横比和自适应布局的更多信息?以及添加纵横比约束“相对于超级视图”与“相对于项目本身”之间有什么区别,就像我对图像视图所做的那样 剂量纵横比 1:1 意味着什么?
  • 我可以在堆栈视图中使用纵横比约束吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-04
  • 2014-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多