自动布局视图隐藏子视图

时间:2016-08-11 13:13:32

标签: ios objective-c uiview autolayout storyboard

我在导航控制器中嵌入了一个UIViewController。我正在使用autolayout。在界面构建器中,这就是VC的外观。

Storyboard

但是当在模拟器中运行时,我得到了这个:

出现此错误。

  

2016-08-10 16:51:17.077我的应用程序[11797:7752671]无法同时进行   满足约束。可能至少有一个限制因素   以下列表是您不想要的。试试这个:(1)看看每一个   约束并试图找出你不期望的东西; (2)找到   添加了不需要的约束或约束并修复它的代码。   (注意:如果您正在看到NSAutoresizingMaskLayoutConstraints,那么   不明白,请参阅UIView属性的文档   translatesAutoresizingMaskIntoConstraints)(   “< _UILayoutSupportConstraint:0x7fad72f7d6b0 V:[_ UILayoutGuide:0x7fad72e5d1d0(64)]>”,   “< _UILayoutSupportConstraint:0x7fad72ffa6a0 V:| - (0) - [_ UILayoutGuide:0x7fad72e5d1d0](姓名:   '|':UIView:0x7fad72fe1b40)>“,   “< _UILayoutSupportConstraint:0x7fad72fe2460 V:[_ UILayoutGuide:0x7fad72e64760(0)]>”,   “< _UILayoutSupportConstraint:0x7fad72fe1470 _UILayoutGuide:0x7fad72e64760.bottom == UIView:0x7fad72fe1b40.bottom>”,   “”   “”   “”   “”)

     

将尝试通过违反约束来恢复   

     

在UIViewAlertForUnsatisfiableConstraints处创建一个符号断点   在调试器中捕获它。方法中的   在UIView中列出的UIConstraintBasedLayoutDebugging类别    也可能会有帮助。

我已多次重建此视图。我转到 编辑 > 解决自动布局问题 > “所有视图”重置为建议的约束

产生这个:

Constraints in storyboard

我甚至手动删除了所有约束并重新开始。

但没有任何作用。

.m文件中没有任何内容可以放置任何内容或调整大小或位置。这种观点没有任何幻想。我做错了什么?

4 个答案:

答案 0 :(得分:1)

编辑器>解决自动布局问题> “所有视图”重置为建议的约束几乎从不正常工作。所以只是避免它。

添加约束时,您需要为每个项目指定四件事:

  1. X位置
  2. Y位置
  3. 宽度
  4. 高度
  5. 有创造性的方法可以做到这一点,所以对于你我建议你将这些约束添加到查找按钮:

    • 水平居中
    • 领先空间超级视图尾随空间到超级视图(您不需要两者)
    • 高度
    • 电话号码的最大空间

    在中心和前导或尾随空间中水平地满足您的x位置和宽度。这两个约束使按钮居中,并在按钮的两侧为您提供相等的空间。按钮将与视图一样宽,减去两侧的空间。设置高度显然满足按钮的高度,顶部空间满足按钮的y位置。因此,您可以轻松地满足按钮的x位置,位置,宽度和高度,您就完成了。

答案 1 :(得分:0)

plz将约束设置为以下图像

enter image description here enter image description here

答案 2 :(得分:0)

你需要重新开始思考你正在制约的约束。想想已知的信息,不应改变的大小。将此信息告诉自动布局。

您的按钮没有显示,因为自动布局不知道如何定位它,它缺少以下数字。删除所有约束并重新开始以下操作。不是你可以改变这个数字。

  1. Txt Search.top =顶部布局指南.bottom。这是你的,这是正确的。
  2. Txt Search.height = 20.0
  3. Txt Search.leading = 0有保证金
  4. Txt Search.trailing = 0有保证金
  5. Lookup.top = Txt.Search.bottom +标准保证金
  6. Lookup.leading = 0有保证金
  7. 具有保证金的Lookup.trailing = 0
  8. Lookup.height = 20.0

答案 3 :(得分:0)

重置为建议的约束从不解决您的问题,它只隐藏警告。您必须设置适合您要求的约束。根据您的问题,当您选择“重置为建议约束”选项时,自动布局将为LOOK UP按钮提供底部布局约束,并且它具有太多的底部约束(当您停留到建议约束时会发生这种情况),因此它在运行时被推高。

您只需要对应于其上方文本字段的按钮的顶部和前导/顶部和中心水平约束以及高度和宽度约束。删除LOOK up按钮的bototm约束。​​