如何防止 UIView 背景旋转? [复制]

Posted

技术标签:

【中文标题】如何防止 UIView 背景旋转? [复制]【英文标题】:How to prevent UIView background from rotating? [duplicate] 【发布时间】:2012-10-26 19:16:00 【问题描述】:

可能重复:Can I rotate a UIView without the black bars?

我希望我的UIView 上的标签能够旋转(它们确实如此),但我已将background 设置为黑色以外的颜色。当我旋转时,您可以看到视图的矩形相对于黑色background 旋转。我怎样才能保持UIViewbackground 仍然允许subviews 的其余部分正常旋转?一切背后的黑色background 是什么?我可以访问它吗?

【问题讨论】:

你能发布一些代码吗?我们会更快地为您提供帮助 这是一个非常通用的实现,事实上,一个普通的“单视图应用程序”在旋转时会显示默认的白色背景旋转在黑色背景之上。我想防止看到黑色背景。 我认为您对此无能为力。 我认为您可能是对的,尽管我不会将可见背景区域称为黑条。更像三角形。这和 Mattia 的回应应该让我走上正轨。谢谢。 【参考方案1】:

我不确定我是否完全理解这个问题。我认为您的问题是(如果我有误解,请澄清我在哪里弄错了问题):

您有一个与设备屏幕大小相同的 UIView。 您想旋转该视图。 当您旋转该视图时,可以看到该视图的父视图的背景。

我认为解决此问题的唯一方法是:

A) 使您正在旋转的视图大于屏幕,这样当您旋转时父视图不可见。如果您这样做,请确保父视图未设置为剪辑它的子视图,否则在调整大小后您不会看到任何差异。

B) 使父视图的背景颜色与您正在旋转的视图的颜色相匹配。如果您不想永久更改父视图的背景颜色,您可以随时在启动动画时更改颜色,并在完成后恢复为原始颜色。

附: - 我认为“一切背后的黑色背景”是您应用程序 UIWindow 的背景颜色。如果您想更改它,您可以执行以下操作(假设您的应用程序委托定义了一个窗口属性,但如果您使用标准 Xcode 模板之一来创建您的应用程序,则应该这样做):

UIWindow* window = [[UIApplication sharedApplication].delegate window];
[window setBackgroundColor:<Some UIColor>];

【讨论】:

以上是关于如何防止 UIView 背景旋转? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用自动布局防止 UIButton 超出其父 UIView 的宽度

如何防止 UIView.animate 被调用

如何防止使用 UIAppearance 和 UIView 的 tintColor 更改所有 UITabBar 图标颜色?

iOS:UIView 在动画时改变大小,我该如何防止?

如何像 iPhone 照片应用程序那样防止自动旋转?

iPhone:如何防止视图旋转到横向视图?