48

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

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

4

4 回答 4

161

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

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

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

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

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

  • groupTableViewBackgroundColor
  • 视图翻转背景颜色

因为它在全球范围内用于所有 iPhone 应用程序,所以你会招致操作系统更新的双刃剑,更新应用程序的外观和感觉(给它一个新的外观,可能会或可能不会正常工作)。

例如:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor groupTableViewBackgroundColor]; 
}
于 2008-10-22T04:48:09.177 回答
2

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

CGContextDrawTiledImage
于 2008-10-22T09:12:58.347 回答
2

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

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

31 天 iPhone 应用程序 - 第 16 天:世界巡回演唱会

于 2008-10-22T16:51:49.200 回答
1

你应该使用 colorWithPatternImage

于 2010-07-13T04:15:24.557 回答