将背景图像加载为视图时出现小的白色间隙

Posted

技术标签:

【中文标题】将背景图像加载为视图时出现小的白色间隙【英文标题】:small white gap when loading a background image as view 【发布时间】:2011-08-06 01:50:23 【问题描述】:

我的 viewWillAppear 中有以下代码:

- (void) viewWillAppear:(BOOL)animated
    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
    [super viewWillAppear:animated];

但是,为什么第一次加载时,我会在屏幕底部看到一个白色的间隙? background.png 大小为 640x960 像素。如果我导航到另一个视图控制器并返回到这个视图控制器,这个差距就会消失。这是应用程序首次启动时加载的第一个视图。任何人都知道为什么会发生这种情况?

截图如下:

更新:

似乎20px的白色间隙来自MainWindow.xib,不知道为什么我们仍然可以看到它,虽然我已经将视图添加为子视图,它应该覆盖所有。又为什么从另一个视图回来后又覆盖了一切?

这是您can download to show the issue的示例项目

【问题讨论】:

这个差距高20点吗?听起来您的视图或其中一些超级视图的高度为 460 点(屏幕的 480 - 20 距离状态栏),但它的原点位于状态栏下方的 (0, 0)。 我猜它应该是状态栏的大小...但我不知道这是怎么发生的 【参考方案1】:

我猜你想为整个视图流设置背景视图。

设置好了

_window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"pause-background.png"]];

self.view.backgroundColor = [UIColor clearColor];

【讨论】:

以上是关于将背景图像加载为视图时出现小的白色间隙的主要内容,如果未能解决你的问题,请参考以下文章

如何用ps把照片的灰色背景变为纯白色?

带有黑色背景的 alpha 图像绘制其他白色...?

使用背景图像或 CSS3 渐变更好吗? (电话间隙)

如何在 nativescript 中显示模态视图时将窗口背景变为黑色

swift中白色背景图像上的白色文本

更改导航栏背景图像导致视图向上移动