Xcode Interface Builder 100%缩放时渲染异常及边框截断问题咨询
关于Interface Builder是否有渲染优化等效设置的解答
先给你明确说:Interface Builder本身没有和模拟器里“Optimize Rendering for Window Scale”完全对应的直接设置,不过针对你遇到的100%缩放时边框出现对角线截断的问题,有几个实用的调整方向可以尝试:
刷新画布渲染缓存
在IB画布底部的缩放控制栏(就是显示当前缩放比例的地方),先切到其他比例再切回100%,很多时候能临时解决编辑器的渲染缓存bug。另外,打开画布右上角的「Preview」实时预览窗口,这里的渲染逻辑更贴近真实设备,大概率不会出现编辑器里的截断问题,可以用来验证布局的实际效果。排查布局与图层设置
这种边框异常经常和Auto Layout约束、图层属性有关:- 如果你的视图用了圆角+边框,检查
masksToBounds的设置是否合理,暂时移除圆角看看边框是否正常,以此定位问题; - 查看视图的frame是否有小数像素值(比如倍数约束导致的非整数坐标),100%缩放时这类问题会更明显,调整约束让视图坐标和尺寸都是整数,大概率能解决截断问题。
- 如果你的视图用了圆角+边框,检查
清理IB相关缓存
有时候IB的缓存文件会搞出奇怪的显示问题,试试这几步:- 关闭Xcode,删掉项目目录下的
DerivedData文件夹; - 重新打开Xcode,选「Product > Clean Build Folder」;
- 再打开你的storyboard/xib文件,看看渲染是否恢复正常。
- 关闭Xcode,删掉项目目录下的
用Debug View Hierarchy验证真实布局
如果模拟器里100%缩放没问题,只有IB编辑器里有bug,那大概率是编辑器的显示问题。你可以在调试时点击调试栏的「Debug View Hierarchy」按钮,查看视图的真实层级和frame,和IB里的显示做对比,确认是不是编辑器的渲染bug。
如果以上方法都没搞定,那很可能是Xcode本身的IB渲染bug,建议更新到最新版本的Xcode,苹果通常会在新版本里修复这类编辑器的小问题。
内容的提问来源于stack exchange,提问作者Jangles
相关产品推荐
相关产品推荐

