1

我在函数中有以下代码viewWillAppear

CAGradientLayer *bgLayer = [BackgroundLayer yellowGradient];
[bgLayer setBounds:self.view.bounds];
[self.view.layer insertSublayer:bgLayer atIndex:0];

它在纵向上完美运行。但是,当设备进入横向模式时,它会在侧面产生白色(或默认颜色)背景。我已经看到了为什么会发生这种情况的其他示例,但没有关于如何解决它的信息。

我看到发生的是横向(iPad)上的 1024 分辨率下降到 1004,我认为它正在将其调整0,20x, y.

有没有其他人遇到过这个问题并找到了解决方法?

4

1 回答 1

1

这是因为当您将屏幕侧向时,具有一定背景颜色的视图不会侧向。视图保持纵向。所以你有这个面向纵向的彩色视图,它从 iPad 的“顶部”到屏幕下方,在右侧,视图不够宽,无法触及,所以你只看到应用程序的默认值 (白色)背景颜色。

你可以:

  • 对您的 90º应用CGAffineTransformMakeRotation旋转self.view,以便它现在可以在您现在的横向应用程序中正确显示,
  • 使您的视图足够大以覆盖整个设备,无论是横向还是纵向,
  • 制作具有适当横向尺寸的视图,并在 iPad 旋转时添加它,或者
  • 在 Xcode 主项目文件中禁用那些允许的界面方向。

CGAffineTransformRotationSO上的演示代码链接:如何使用CGAffineTransformMakeRotation?

于 2013-01-14T05:04:33.477 回答