在iPad模拟器上将视图从UIInterfaceOrientationPortrait
旋转到UIInterfaceOrientationPortraitUpsideDown
时,视图的一侧会出现白色边框(请参见图片左下角的diagram)。白色边框仅显示在一侧,但不显示在另一侧。我该如何防止(隐藏)它?谢谢!
答案 0 :(得分:16)
这是一个猜测:
您的某个视图可能将backgroundColor设置为白色,并且它完全被另一个视图覆盖。在旋转过程中,可能浮点错误会导致一个边框稍微显示在该边缘上。
要研究这种情况,您可以使用未记录的方法[UIView recursiveDescription]
快速查看视图层次结构(无需使用该方法提交代码,仅用于调试)。一旦知道底部附近有哪些视图,就可以打印出他们的backgroundColors,或者只将它们全部设置为[UIColor clearColor].
另外,我猜你已经知道了这个,但是在你的代码开头设置window.backgroundColor = [UIColor clearColor]
会很有用!
答案 1 :(得分:0)
我有同样的问题。我在“界面”构建器中看到无法启用视图的自动调整大小。我删除了.xib并重新创建它,确保在创建文件时将产品设置为“ipad”(在xcode中添加新文件)。
答案 2 :(得分:0)
您还可以将背景颜色设置为nil。从backgroundColor的UIView文档:
默认值为nil,这会产生透明背景 颜色。
UIWindow继承自UIView,因此也适用。使用nil可能是一个好主意,以防[UIColor clearColor]并不总是最好的方法。
有趣的是,我有一个没有笔尖的项目,所以我在代码中创建了UIWindow,但是在我将它设置为nil之前,背景颜色是白色的。是以编程方式创建的UIWindow white的默认背景颜色吗?