【问题标题】:Unable to get the constraints right in xcode storyboard无法在 xcode 故事板中获得正确的约束
【发布时间】:2015-05-02 04:21:06
【问题描述】:

我在玩 iOS 8 自动布局和约束,遇到了这个简单的问题,想知道是否有人可以帮助我。

我只想创建视图(uiview)并在底部中心有一个标签。 所以我创建了一个新项目,主故事板设置为 wAny hAny。 将视图拖入其中 x:16,y:20 宽275,高:560 颜色:绿色

添加了以下约束 将顶部空间固定到超级视图 将前导空间固定到超级视图 引脚高度 引脚宽度

添加了一个标签并将其居中到视图的底部 在标签上,将前导空间固定到 superview 将底部空间固定到超级视图

目前没有看到任何约束错误

在模拟器中使用 iPhone 6 在纵向模式下,我可以看到完整视图和底部的标签 现在向左旋转,现在屏幕处于横向模式。但视图仍然垂直位于屏幕的左侧,并且它的 1/2 被剪切了。

所以我的问题是如何解决这个问题,以便视图也可以旋转,或者我可以使用标签整个视图?

【问题讨论】:

  • 不确定是否完全理解您的问题,但如果您强制视图的宽度和高度,iOS 将在纵向和横向模式下强制执行这些约束。因此,在纵向模式下 height=560px 的视图在横向模式下仍然具有 560px 的高度,这可以解释为什么您只能看到其中的一半...
  • 玩弄不是一个好的开始方式。您需要阅读文档以了解自动布局的工作原理。我还建议您观看 WWDC 2012 上有关该主题的视频。

标签: ios uiview storyboard


【解决方案1】:

通常,您不希望固定在一侧而不是另一侧,因为随着视图大小的变化(例如旋转),只有视图的一侧会被拉动,而这正是您所看到的。

因此,要么您不应该固定,而是在超级视图中水平居中(并允许标签的固有内容大小设置大小),或者您应该固定前导和尾随(因此标签将始终调整为完整大小宽度)。

【讨论】:

  • 另外,如果您希望标签位于底部,那么您应该固定底部空间,而不是顶部。
  • 如果我设置了 UIView 的宽度和高度,它是否真的不会被调整以适应不同的设备?我还注意到在 iphone 6 纵向模式下显示正常,但在 iphone 4 上的纵向模式不显示?
  • 如果您设置了约束,请不要设置框架 - 约束和内在尺寸定义了框架
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-15
  • 2018-04-15
  • 1970-01-01
  • 2014-11-14
  • 2017-06-07
  • 1970-01-01
  • 2016-01-09
相关资源
最近更新 更多