【问题标题】:Annoying white border when rotating a view in iPad在 iPad 中旋转视图时出现恼人的白色边框
【发布时间】:2010-05-06 03:28:46
【问题描述】:

在 iPad 模拟器上将视图从 UIInterfaceOrientationPortrait 旋转到 UIInterfaceOrientationPortraitUpsideDown 时,视图的一侧有一个白色边框(请参阅图像左下角的 diagram)。白色边框仅显示在一侧,而不显示在另一侧。我怎样才能防止(隐藏)它?谢谢!

【问题讨论】:

    标签: iphone ipad ios-simulator


    【解决方案1】:

    这是一个猜测:

    您的一个视图的背景颜色可能设置为白色,并且它被另一个视图完全覆盖。在旋转过程中,浮点错误可能会导致一个边框略微穿过该边缘。

    要调查这种情况,您可以使用未记录的方法[UIView recursiveDescription] 快速查看您的视图层次结构(无需使用该方法提交代码,它只是用于调试)。一旦知道哪些视图靠近底部,就可以打印出它们的背景颜色,或者将它们全部设置为[UIColor clearColor].

    另外,我猜你已经知道这个了,但是在代码开头设置 window.backgroundColor = [UIColor clearColor] 会很有用!

    【讨论】:

    • 谢谢泰勒! window.backgroundColor = [UIColor clearColor];有效!!
    • +1 window.backgroundColor = [UIColor clearColor];对我也有用:)
    【解决方案2】:

    我遇到了同样的问题。我看到在 Interface builder 中无法启用视图的自动调整大小。我删除了 .xib 并重新创建了它,以确保在创建文件时将产品设置为“ipad”(在 xcode 中添加新文件)。

    【讨论】:

      【解决方案3】:

      您还可以将背景颜色设置为 nil。来自背景颜色的 UIView 文档:

      默认值为 nil,即为透明背景 颜色。

      UIWindow 继承自 UIView,因此也可以。使用 nil 可能是个好主意,以防 [UIColor clearColor] 并不总是最好的方法。

      有趣的是,我有一个没有笔尖的项目,所以我在代码中创建了 UIWindow,但是在我将其设置为 nil 之前,背景颜色是白色的。以编程方式创建的 UIWindow 的默认背景颜色是白色吗?

      【讨论】:

        猜你喜欢
        • 2013-08-15
        • 1970-01-01
        • 1970-01-01
        • 2017-08-03
        • 2013-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多