【问题标题】:Why does this nib stretch horizontally?为什么这个笔尖会水平拉伸?
【发布时间】:2014-10-12 23:38:30
【问题描述】:

我最近将笔尖转换为autolayout。这些按钮的每个方面都是固定的:尺寸和到设备死点的距离。我期望它在 iPad 上旋转方向时保持不变,但事实并非如此——下面的第一张图片是纵向,第二张是横向。我应该调查什么以防止它水平拉伸?实际上,我认为它可能会向两个方向拉伸,除了纵向中的 x 尺寸与横向中的 y 尺寸相同,因此没有空间以这种方式拉伸。我查看了 Simulated Metrics - View Mode - 它设置为 UIContentModeCenter 从描述中不应允许拉伸,但更改此设置没有效果(如果设置为 UIContentModeScaleToFill 我会得到相同的结果所以我认为这是偏离轨道)。我一定有一个标志/切换错误的地方。编辑:这些是来自模拟器的视图。

【问题讨论】:

  • 你应该更详细地解释你的约束。猜测一下,您有从按钮到超级视图边缘以及彼此(或超级视图中心?)的约束。这是通过增加按钮的大小来强制拉伸。基本上,所需的约束会覆盖按钮的内容拥抱优先级,因此按钮不再紧紧拥抱他们的内容。 (如果你要增加内容拥抱优先级,你可能会导致冲突,这可能更容易调试。)
  • 你能贴一张你想要的样子吗?
  • @ZevEisenberg 抱歉有点不清楚。我希望这组按钮在两个方向上看起来都相同,并且看起来像上面的左图。约束是中间行/列居中,每个按钮距离其相邻按钮 15 个点,每个按钮为 80 x 80 个点。

标签: xcode ipad ios7 xcode5 autolayout


【解决方案1】:

我想你是说你想让积木伸展但保持它们之间的距离不变?如果是这种情况,请这样设置:

  • 项目间距离约束将项目之间的距离以及从项目到边缘的距离保持在某个恒定值。
  • 使所有项目的宽度彼此相等的约束(最简单的方法是让每个项目的宽度等于单个项目的宽度)。
  • 高度同上

更新:根据您更新后的描述,以下是您应该使用的约束:

  • 所有单元格的大小都被限制为固定大小。
  • 单元间距限制为固定大小。
  • 中心单元格 (5 JKL) 在容器中被限制为水平和垂直居中
  • 要么没有从边缘单元到容器边缘的约束,要么有>= 间距约束,因此从边缘单元到容器的距离可能会有所不同。

【讨论】:

  • 我不想让任何东西伸展或移动。我认为上面的那些图片是按比例绘制的,这是拉伸的按钮间空间。我有您建议的项目间限制,但按钮的高度/宽度并不限制为彼此相等,按钮的大小固定为 80 x 80 点。没有来自autolayout 的投诉。
  • 我想我有你所描述的,在最后一个子弹上,我对边缘没有限制。让我再复习一遍,也许我错过了一个。
  • 我有按钮 2、5、8 在容器中水平居中,按钮 4、5、6 在容器中垂直居中。我认为考虑到所有尺寸和间距都已给出,我认为居中 2、8、4、6 可能被认为是不必要的。你认为这重要吗?
  • 不应该。从任何视图的边缘到容器是否有任何约束?可以发布您的代码或xib吗?
  • 我可以发布笔尖,就像一个要点一样,我应该导出为 xml 还是在这种情况下有意义(抱歉,这不是我的正常工作流程)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-26
  • 2020-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-27
相关资源
最近更新 更多