在iPad中旋转视图时恼人的白色边框

时间:2010-05-06 03:28:47

标签: iphone ipad ios-simulator

在iPad模拟器上将视图从UIInterfaceOrientationPortrait旋转到UIInterfaceOrientationPortraitUpsideDown时,视图的一侧会出现白色边框(请参见图片左下角的diagram)。白色边框仅显示在一侧,但不显示在另一侧。我该如何防止(隐藏)它?谢谢!

3 个答案:

答案 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的默认背景颜色吗?