Ios 设置倍增器时的自动布局中心y对齐奇怪行为

Ios 设置倍增器时的自动布局中心y对齐奇怪行为,ios,autolayout,uistoryboard,Ios,Autolayout,Uistoryboard,我的故事板中有一个具有动态高度的辅助视图,这是使布局响应的常见做法 然而,当我引入乘数时,发生了一些奇怪的事情 蓝色按钮的中心y与左侧的白色视图对齐: 将倍增值更改为0.5应该使按钮与白色视图前半部分的中心对齐,至少在与superview对齐时是这样 相反,我的结局是这样的: 蓝色按钮高度等于superview高度的0.05倍。白色视图高度等于蓝色按钮高度的4倍 我不知道是什么问题导致了这种奇怪的排列。我怀疑它可能是具有动态高度值的东西,所以我尝试设置显式高度值,但结果完全相同。您说,如果按

我的故事板中有一个具有动态高度的辅助视图,这是使布局响应的常见做法

然而,当我引入乘数时,发生了一些奇怪的事情

蓝色按钮的中心y与左侧的白色视图对齐:

将倍增值更改为0.5应该使按钮与白色视图前半部分的中心对齐,至少在与superview对齐时是这样

相反,我的结局是这样的:

蓝色按钮高度等于superview高度的0.05倍。白色视图高度等于蓝色按钮高度的4倍


我不知道是什么问题导致了这种奇怪的排列。我怀疑它可能是具有动态高度值的东西,所以我尝试设置显式高度值,但结果完全相同。

您说,如果按钮位于Y中心,且带有乘数
0.5
,则它应该位于白色视图的1/4处。。不,不是那样的。。让我们用等式来检验一下

乘数适用于这个等式

 FirstItem.Attribute1 = (SecondItem.Attribute2 * Multiplier) + Constant
您的约束是按钮。中心Y=空白视图。中心Y。。这就是方程的填充方式

 Button.Center Y = (BlankView.center Y * 1) + 0 
所以问题是BlankView的价值是什么。。。 答案是

 BlankView.Center Y = HeightOfSuperviewOFBlankView - (Y positionOFBlankView + (BlankViewHeight / 2))
 // in your case it would be 603 - (483 +(120/ 2)) = 543
现在使用乘数
0.5

 Button.Center Y = (543 * 0.5) + 0  // 271.5
因此,您的按钮位置与中心Y位于

 Button.Center Y = 271.5 - (buttonHeight / 2) 
  // if we take buttonHeight = 30 than it should be 257.5 (approx 257)

我希望现在你明白了中心Y和乘数是如何工作的

您说过,如果按钮位于Y轴中心,且倍增器为
0.5
,则按钮应位于白色视图的1/4处。。不,不是那样的。。让我们用等式来检验一下

乘数适用于这个等式

 FirstItem.Attribute1 = (SecondItem.Attribute2 * Multiplier) + Constant
您的约束是按钮。中心Y=空白视图。中心Y。。这就是方程的填充方式

 Button.Center Y = (BlankView.center Y * 1) + 0 
所以问题是BlankView的价值是什么。。。 答案是

 BlankView.Center Y = HeightOfSuperviewOFBlankView - (Y positionOFBlankView + (BlankViewHeight / 2))
 // in your case it would be 603 - (483 +(120/ 2)) = 543
现在使用乘数
0.5

 Button.Center Y = (543 * 0.5) + 0  // 271.5
因此,您的按钮位置与中心Y位于

 Button.Center Y = 271.5 - (buttonHeight / 2) 
  // if we take buttonHeight = 30 than it should be 257.5 (approx 257)

我希望现在你明白了中心Y和乘数是如何工作的

你白色视野的高度是多少?蓝色按钮呢?蓝色按钮是superview高度的0.05倍,白色视图是按钮高度的4倍。我需要的只是可以看到x、y、宽度和高度的高度。不是多人游戏。或者,如果你有演示,请上传它。好的,既然模拟指标是iPhone6,按钮高度是30,白色视图高度是120,试着将Multipiar 0.25设置为bluebutton。你的白色视图的高度是多少?蓝色按钮呢?蓝色按钮是superview高度的0.05倍,白色视图是按钮高度的4倍。我需要的只是可以看到x、y、宽度和高度的高度。不是多人游戏。或者,如果你有演示,请上传它。好吧,既然模拟指标是iPhone6,按钮高度是30,白色视图高度是120,试着将Multipiar 0.25设置为bluebutton。好吧,现在很清楚为什么它适用于superview定位,为什么它不适用于其他位置的视图!你的解释真的很棒,澄清了关于设置乘数的困惑!好的,现在很清楚为什么它可以在superview中定位,为什么它不能在其他地方定位!你的解释真的很棒,澄清了关于设置乘数的困惑!