在本机 iPhone 应用程序中重复背景图像

Posted

技术标签:

【中文标题】在本机 iPhone 应用程序中重复背景图像【英文标题】:Repeating background image in native iPhone app 【发布时间】:2010-09-18 11:29:33 【问题描述】:

没有将 UIWebView 作为我的 nib 文件的最后一层,我如何向 iPhone 应用程序添加重复的背景图像(如分组 UITableView 的背景中的灯芯绒外观)?

我是否需要创建一个与 iPhone 屏幕大小相同的图像并使用复制和粘贴手动重复它?

【问题讨论】:

【参考方案1】:

显然 UIColor 不一定是单一颜色,但也可以是图案。令人困惑的是,Interface Builder 不支持此功能。

相反,您使用便捷的方法 +colorWithPatternImage: 设置视图的背景颜色(例如,在 -viewDidLoad 中),并传递给它一个 UI 图像。例如:

- (void)viewDidLoad 
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"gingham.png"]]; 

当然,不要忘记将图像文件添加到您的应用程序包中。

还有一些内置的背景图案“颜色”:

groupTableViewBackgroundColor viewFlipsideBackgroundColor

由于所有 iPhone 应用程序都在全球范围内使用,因此您会遇到更新应用程序外观和感觉的操作系统更新的双刃剑(赋予它全新的外观,可能会或可能不会正常工作)。

例如:

- (void)viewDidLoad 
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor groupTableViewBackgroundColor]; 

【讨论】:

哇,我不知道这个。很棒的提示! 能否提供一个关于如何使用 groupTableViewBackgroundColor 的代码 sn-p?谢谢! 值得一提的是 colorWithPatternImage 似乎不支持 PNG24 还有比这更节省内存的吗? 这比我想象的要容易实现。感谢您的回答!【参考方案2】:

您应该查看来自 Apple 的 QuartzDemo iPhone 示例代码,特别是 QuartzImageDrawing.m。应该使用下面的方法调用。

CGContextDrawTiledImage

【讨论】:

【参考方案3】:

您甚至可以让动画平铺背景图像移动。 :D

Apps Amuck 有一个简单的教程,向您展示如何在他们的网站上执行此操作。

31 Days of iPhone Apps - Day 16: World Tour

【讨论】:

【参考方案4】:

你应该使用 colorWithPatternImage

【讨论】:

以上是关于在本机 iPhone 应用程序中重复背景图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在ipad和iphone中固定背景图像不滚动位置固定[重复]

具有固定背景图像的 ipad/iphone 应用程序

如何在 iPhone 应用程序的 UITableCell 中的背景中加载图像

iPhone本机应用程序中的Facebook喜欢按钮

ios 6:iPhone 5 中的背景图像视图

iOS应用程序的背景图像的正确尺寸是多少