隐式约束 iPhone 竖屏高度

13

我尝试使用界面构建器创建自定义的无约束视图。我有一个包含UIImageView和UILabel的UIView。我设置了约束来根据图片等调整标签以及与superview之间的边距。

现在我想让superview完全适合子视图。但是当我按下编辑器->大小适应内容时,superview没有完全调整大小,而且约束冲突。出现了一个隐含的约束(“iPhone Portrait Screen Height”),无法更改/删除。请参见下方的屏幕截图:

enter image description here


1
今天我也遇到了这个问题。在我的看来,根视图总是被视为将占据整个屏幕的尺寸,即使我将其设置为自由形式。我正在考虑向苹果提交一个错误报告。 - Nikola Lajic
1
你找到解决方法了吗?我今天也遇到了同样的问题。 - Kremk
1
这个问题有任何更新吗?似乎仍然存在。 - Tylerc230
遇到了与“iPhone纵向屏幕宽度”相关的问题,其中视图宽度相等且之间存在显式尾随约束(“间隙”)。只需要删除我在第一个视图上设置的显式宽度即可解决过度约束的问题。 - David James
3个回答

1

虽然不是最理想的方法,但取决于您的XIB结构以及您如何引用视图,您可以创建一个“草稿”视图,并将自定义视图放置在其中,以查看所有内容的布局情况。如果您正在将视图设置为XIB文件所有者中定义的出口,则可以将其连接到您在“草稿”中创建的视图。

例如,我创建了一个容器视图,里面有一个正方形和一个开关。顶部示例会出现冲突的约束条件,并且无法正确布局,而底部示例显示了相同的内容居中在一个可丢弃的视图中。再次强调,这不是最理想的方法,但对我来说有效。

enter image description here

编辑:我刚刚意识到一些尺寸类约束可能会在“草稿簿”视图被丢弃时丢失,这是需要考虑的另一个问题。仍在研究中。

0
我注意到当我物理拖动父视图的宽度和高度以满足约束条件时,红色约束错误消失了,同时也消失了“iPhone纵向屏幕宽度”约束。换句话说,我的约束条件规定我的子视图与其父视图底部对齐。如果我将父视图的底边拖向与子视图齐平,错误就会消失。但仍然感觉有些错误和不直观。

在Xcode 6.3.1中,这仍然无法正常工作。这看起来很有问题且不直观。这是有问题的和不直观的。现在我得到的唯一解决方案是更改容器的约束和大小。我的所有生产力都因为这种破事而丧失了。很抱歉承认,但XCode / IB / Swift似乎是那么马虎的工作,它们并没有像苹果所销售的那样提高我的生产力。 - Mr Bonjour

0

为了简单起见,暂时忘记标签。您已经添加了图像视图的宽度和高度约束,现在不要使用sizetofit内容,而是在图像视图和其父视图之间添加前导、后续、顶部和底部约束。这样您的父视图应该适合图像视图。

同样的技术(约束到父视图)可以用于使图像视图和标签一起工作。


我已经设置了这些约束,但它们并没有起作用。我将前导、后继等优先级设置为1000,这意味着它们是必需的。然后出现了一些奇怪的隐式约束(iPhone纵向屏幕高度)。似乎界面构建器想要保持纵向模式的纵横比。但是,这个视图将被用作MKAnnotationView,因此我不需要保持比例。 - kaeLum
只有当父视图是nib的根视图时,才会发生这种情况! - kaeLum
这对我来说是一个严重的问题! - kaeLum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接