【问题标题】:Xcode Auto Layout Constraints not working (using storyboard)Xcode 自动布局约束不起作用(使用情节提要)
【发布时间】:2015-05-29 12:09:07
【问题描述】:

我一直在以编程方式使用自动布局,但现在我想看看 Xcode 中的故事板功能是什么。我想我已经正确地为第一个按钮(左下角的按钮)创建了约束:

我似乎没有任何冲突或模棱两可的约束,但是当我在手机上运行应用程序进行测试时,它看起来像这样:

如您所见,按钮位于左上角……无论我尝试使用什么约束,按钮始终位于左上角。我希望它位于左下角。

任何帮助将不胜感激,谢谢。

更新

我已经尝试了这些建议,但都没有奏效...这是我现在的设置方式 - 我必须做 left:-16 top:0 right:-16 bottom:0 才能使 mapView 约束工作.对于按钮,我使用了 insets 选项(如答案中所述)并做了 bottom:0, left:0 - 以便将其固定到左下角(只需要两个约束?):

【问题讨论】:

  • 将按钮底部固定到 mapViews 父视图的底部
  • 只需将前导空格和底部空格添加到您的按钮,它会将按钮粘贴到左下角
  • 你必须给它一个前导和顶部/底部约束到超级视图
  • 所以它应该只需要 2 个约束?不需要宽高?
  • 还有 - 我需要 [self.view addSubview:] 将按钮添加到布局中还是在情节提要中可以选择这样做?

标签: ios layout uibutton autolayout


【解决方案1】:

清除所有约束并:

1) pin MapView: 0 - 0 - 0 - 0 来自 Super View 2) pin button: 0(left) - 0(bottom) from MapView 3) 添加宽高约束

应该可以的

【讨论】:

  • 当我按照你的建议去做时,左侧和底部的约束最终会变得模棱两可......
【解决方案2】:

在您的屏幕截图中,mapView 似乎是某种自定义类,而不是您可以从 Interface Builder 中拖动的 MKMapView

我刚刚尝试过,如果您有正常的MKMapView,您将无法向地图添加子视图。这是我尝试过的设置,一切正常。

我的建议是将按钮移动到与 mapView 不同的级别(以便它们具有相同的superView)。然后你添加你的约束,一切都应该正常工作。

我认为 mapView 有自己的处理子视图的方式,所以它可能只是清除了您在情节提要中添加的约束。

告诉我进展如何!祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 2017-02-09
    • 2014-12-04
    • 2014-10-12
    • 1970-01-01
    相关资源
    最近更新 更多