发现如果使用 XCode 8 XIB 文件,UIView initWithCoder 将获取帧 (0, 0, 1000, 1000) 而不是 XIB 帧大小设置。
检查它将添加的 XIB xml 文件的差异
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
并删除矩形框设置,例如
<rect key="frame" x="110" y="0.0" width="20" height="17"/>
删除矩形框架设置是在 initWithCoder 中获得宽度 1000 和高度 1000 的主要原因。
因此,任何相关的尺寸计算,我们都需要在layoutSubviews
.