Ios6 通过更改内容和自动布局使UILabel居中

Ios6 通过更改内容和自动布局使UILabel居中,ios6,autolayout,Ios6,Autolayout,我有两种观点。MapKitView和UILabel。自动布局已打开 我希望MKView占据整个屏幕(这似乎工作正常),UILabel保持与屏幕底部的自动距离,但水平居中。UILabel内容是通过编程更改的,之后我会调用sizeToFit 在UILabel上调用sizeToFit后,它不再居中-宽度似乎仅从右侧(后缘)调整,保持左侧处于恒定位置 我的理解是,只有在IB中设置正确的约束条件,我才能实现我想要的 我应用于标签的约束有: Height Equals: 32 Width Equals: 1

我有两种观点。MapKitView和UILabel。自动布局已打开

我希望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 | uiviewautoresizingflexibleleleleftmargin | UIViewAutoresizingFlexibleRightMargin
。我已尝试将
preferredMaxLayoutWidth
设置为随机值。在标签上调用
needsUpdateConstraints
。我尝试在
viewdilayoutsubviews
中调用
sizeToFit

我得出的结论是,我需要更多地了解我应该如何处理这个问题。启用自动布局时,
sizeToFit
不是要调用的对象吗?调用
sizeToFit
后是否需要以某种方式生成自动布局?我注意到,旋转模拟器似乎使标签居中,所以刺激听起来有可能

我已经重新阅读了,但恐怕我仍然不确定我做错了什么,并且建议的调试提示(可视化约束等)似乎在iOS上不起作用


谢谢你能提供的任何线索。

我关于必须戳的想法似乎是正确的。调用
sizeToFit
后,我需要调用
[label.superview setNeedsLayout]
。虽然这是可行的,但我真的不知道为什么我需要手动执行此操作,而不是在布局大小改变时将其标记为脏的标签