我只是在Interface Builder中发现了一个与Storyboard有关的奇怪行为。
如果我设置UIView:
•超视图的等宽,乘数1
•水平居中于超级视图,乘数 x
然后我希望宽度始终是相同的值但是没有,我有2个行为:
•x> = 1 =>宽度与超视图的预期值相同
•x< 1 =>宽度比superview大0.5像素
我错过了什么吗?
以下是故事板的摘录,其中包含两个案例
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CtB-in-rfQ">
<rect key="frame" x="0.0" y="20" width="375" height="267"/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="N87-No-JIr">
<rect key="frame" x="-94" y="400" width="375.5" height="267"/>
<color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
</view>
</subviews>
修改
如您所见,深灰色视图的宽度等于superview + center X等于0.5 x superview的中心X.
的 BUT
深灰色视图的宽度为375.5像素。 x位置应为-93.75像素,向左舍入0.25像素。所以我猜仍然有视图居中到187.5像素,界面构建器在右边增加另外0.25像素,大0.5像素的末端。
我期望的是当我改变中心X约束的乘数时,框架更重要并且没有改变。 (这对我来说与宽度无关)。