我无法弄清楚我在这里做错了什么......超级基本的东西,但我看到网上没有其他投诉,所以也许这是我做错的事情?
我正在使用XCode 8,我发现当将视图对准自身居中于屏幕的对等视图的中心X时,XCode实际上将对齐设置为顶部的中心X-水平视图。截屏:
这是一个超级基本的UIView,UILabel与UIView中心X对齐(约束突出显示)。 以下是视图层次......没有惊喜......
突出显示的约束:
您可以看到约束将MyLabel.centerX与MyView.centerX相关联。关系为0.5,这意味着MyLabel应位于距离MyView左边缘25%的位置。它不是 - 如果仔细查看第一个屏幕截图,您可以看到它不是25%来自MyView边缘,而是25%来自屏幕边缘。如下所示将故事板更改为iPad屏幕可以更清楚地显示问题:
如果您要对齐的视图本身位于顶级视图的中心,则似乎只会发生这种情况。如下所示,如果我创建另一个不在顶级视图中心的视图,一切都很好。
iPad的演绎:
任何想法都会受到赞赏....
答案 0 :(得分:1)
您可以看到约束将MyLabel.centerX与MyView.centerX相关联。该关系为0.5,这意味着MyLabel应位于距离MyView左边缘25%的位置。
通过将MyLabel的centerX放到MyView的中心X,你实际上并没有将MyLabel的centerX与MyView的前沿对齐...
由于MyView的centerX与根UIView的centerX对齐,MyLabel的centerX正在完成您指定的操作。
传递属性:如果a = b,则b = c,则a = c。在这种情况下,根UIView(superview)的centerX
您应该将第二项从MyView.Center X
更改为我的视图的前沿
答案 1 :(得分:0)