我有2个视图。一个MapKitView和一个UILabel。自动布局已打开。保持一个UILabel以改变内容和AutoLayout为中心
我想要MKView占用整个屏幕(这似乎工作正常)和UILabel保持从屏幕底部的自动距离,但水平居中。 UILabel内容以编程方式更改,之后我致电sizeToFit
。
在UILabel上调用sizeToFit
之后,它不再居中 - 宽度似乎只从右侧(后缘)调整,左侧保持在一个固定的位置。
我的理解是,我应该能够通过在IB中设置正确的约束条件来实现我想要的吗?
我已经应用到标签的约束条件是:
Height Equals: 32
Width Equals: 166
Bottom Space to: Superview Equals: Default
Align Center X to: Map View
只有最后一个问题,“居中对齐X”是一个用户约束 - 被IB提供的休息。
我已经尝试了很多东西,虽然没有太多的理解(大概是我的问题!)。
我在标签上打了setTranslatesAutoresizingMaskIntoConstraints: NO
。 我已经设置了标签的autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin
。我曾尝试将preferredMaxLayoutWidth
设置为随机值。在标签上拨打needsUpdateConstraints
。我尝试将sizeToFit
拨打电话viewDidLayoutSubviews
。
我得出结论我需要多一点理解我应该如何接近这一点。当自动布局打开时,是不是要调用的东西是sizeToFit
?在拨打sizeToFit
之后,我需要以某种方式制作自动布局吗?我注意到,旋转模拟器似乎集中在标签上,所以刺激听起来有可能吗?
我重新阅读了Apple Auto Layout guide,但恐怕我仍然不确定自己做错了什么,并且提示的调试技巧(visualizeConstraints等)在iOS上似乎不起作用。
感谢您的任何线索,你可以备用。