背景颜色(colorWithPatternImage)没有填充 iPad 的整个视图

Posted

技术标签:

【中文标题】背景颜色(colorWithPatternImage)没有填充 iPad 的整个视图【英文标题】:Background color (colorWithPatternImage) not filling entire view for iPad 【发布时间】:2012-01-28 21:25:15 【问题描述】:

我正在尝试使用我拥有的方格图像设置背景颜色。我目前在我的 iPhone 应用程序中使用它,现在正在尝试创建一个通用应用程序。当我使用这个时:

 UIImage *bgimg = [UIImage imageNamed:@"square_bg.png"];
 self.view.backgroundColor = [UIColor colorWithPatternImage:bgimg];

它适用于我的 iPhone 应用程序。当它在 iPad 上以纵向模式加载时,底部有大约 20 像素的空白区域。当它以横向加载时,它很好。如果我从纵向旋转到横向,然后再旋转回来,也可以。

我缺少什么会一直填充模式直到我的视图底部?

更新

如果我将颜色设置为纯色 [​​UIColor blueColor],则整个屏幕将正确填充。那么为什么 colorWithPatternImage 和纯色会有差异呢?

更新 2

我使用的文件是一个尺寸为 252x230 的 PNG 文件。我已使用此图像在此应用程序的 iPhone 版本中制作图案,没有任何问题。我不确定文件大小或尺寸是否对这个问题有任何影响,但我想我会把它放在那里以防万一。

【问题讨论】:

Core Graphics 将从视图的左下角开始绘制您的图案图像。您可以使用带边框的图案图像进行测试,以查看图像是否被 1) 剪裁或 2) 添加边距? 我会试一试,然后告诉你。 【参考方案1】:

也许视图没有设置为正确的高度。如果将 backgroundColor 更改为纯色,它会填满整个屏幕吗?

【讨论】:

是的,确实如此。如果我用 blueColor 替换 colorWithPatternImage,我会得到一个全屏的蓝色,没有问题。【参考方案2】:

20px 听起来像状态栏高度。你能告诉我们视图框架吗?

您的自动调整大小是否正确设置为动态宽度和高度以及固定边框?

【讨论】:

我觉得自己像个白痴。我回去检查所有尺寸,并为此视图设置了状态栏,导致事物发生了 20 像素的偏移。当我关闭状态栏时,一切都正确填写。仍然很好奇为什么它不会在横向模式下影响它。但是问题已经解决了。 我认为它与自动调整大小有关。我在导航控制器及其导航栏上遇到了类似的问题。在横向启动或第一次旋转后也能正常工作。

以上是关于背景颜色(colorWithPatternImage)没有填充 iPad 的整个视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift中将背景图像设置为colorWithPatternImage

将使用 colorWithPatternImage 创建的 NSColor 转换为 CGColor?

bug - colorWithPatternImage:

UIlabel添加背景图片

平铺背景图片:我可以使用UIImageView轻松完成吗?

带有 Xcode 4.3.1 的 iOS 5.1:[UIColor colorWithPatternImage:] 奇怪的行为仅在设备上