【发布时间】:2018-05-11 23:27:55
【问题描述】:
我只是在带有 Storyboard 的 Interface Builder 中发现了一个奇怪的行为。
如果我将 UIView 设置为:
• 与父视图等宽,乘数 1
• 水平居中到超级视图,乘数 x
然后我希望宽度始终为相同的值,但不,我有 2 种行为:
• x >= 1 => 宽度与超级视图的预期值相同
• x 宽度比父视图大 0.5 像素
我错过了什么吗?
这是故事板的摘录,两个案例都有 2 个视图
<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>
编辑:
如您所见,深灰色视图的宽度等于超级视图 + 中心 X 等于 0.5 x 超级视图的中心 X。
但是
深灰色视图的宽度为 375.5 像素。 x 位置应为 -93.75 像素,向左四舍五入 0.25 像素。所以我想仍然有以 187.5 像素为中心的视图,界面生成器在 0.5 像素大的右侧再添加 0.25 像素。
我期望的是框架更重要,并且当我更改中心 X 约束的乘数时并没有改变。 (这对我来说与宽度无关)。
【问题讨论】:
标签: ios xcode storyboard interface-builder nslayoutconstraint