【发布时间】:2010-05-06 03:28:46
【问题描述】:
在 iPad 模拟器上将视图从 UIInterfaceOrientationPortrait 旋转到 UIInterfaceOrientationPortraitUpsideDown 时,视图的一侧有一个白色边框(请参阅图像左下角的 diagram)。白色边框仅显示在一侧,而不显示在另一侧。我怎样才能防止(隐藏)它?谢谢!
【问题讨论】:
标签: iphone ipad ios-simulator
在 iPad 模拟器上将视图从 UIInterfaceOrientationPortrait 旋转到 UIInterfaceOrientationPortraitUpsideDown 时,视图的一侧有一个白色边框(请参阅图像左下角的 diagram)。白色边框仅显示在一侧,而不显示在另一侧。我怎样才能防止(隐藏)它?谢谢!
【问题讨论】:
标签: iphone ipad ios-simulator
这是一个猜测:
您的一个视图的背景颜色可能设置为白色,并且它被另一个视图完全覆盖。在旋转过程中,浮点错误可能会导致一个边框略微穿过该边缘。
要调查这种情况,您可以使用未记录的方法[UIView recursiveDescription] 快速查看您的视图层次结构(无需使用该方法提交代码,它只是用于调试)。一旦知道哪些视图靠近底部,就可以打印出它们的背景颜色,或者将它们全部设置为[UIColor clearColor].
另外,我猜你已经知道这个了,但是在代码开头设置 window.backgroundColor = [UIColor clearColor] 会很有用!
【讨论】:
我遇到了同样的问题。我看到在 Interface builder 中无法启用视图的自动调整大小。我删除了 .xib 并重新创建了它,以确保在创建文件时将产品设置为“ipad”(在 xcode 中添加新文件)。
【讨论】:
您还可以将背景颜色设置为 nil。来自背景颜色的 UIView 文档:
默认值为 nil,即为透明背景 颜色。
UIWindow 继承自 UIView,因此也可以。使用 nil 可能是个好主意,以防 [UIColor clearColor] 并不总是最好的方法。
有趣的是,我有一个没有笔尖的项目,所以我在代码中创建了 UIWindow,但是在我将其设置为 nil 之前,背景颜色是白色的。以编程方式创建的 UIWindow 的默认背景颜色是白色吗?
【讨论】: