0

我正在尝试UITableView使用以下方法设置背景:

[self.tableView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"backgroundImage.png"]]];

这非常适合使背景与表格一起滚动。但是,我的背景图像会变成纯色,因此我希望它不会重复背景,而是向上滚动并适合屏幕高度然后我可以将self.view's设置backgroundColor为纯色,它看起来会很棒。

其他选项似乎在底部绘制一个小图像,但这似乎很复杂,我不太明白如何绘制背景和使用CGContext.

有人可以告诉我该怎么做吗?

我想要的例子

4

2 回答 2

0

我不确定这是否可行,但您应该尝试为背景创建一个可调整大小的 UIImage:

如果您希望最后一行像素重复,您可以调用

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode

在您的图像 ( [UIImage imageNamed:@"backgroundImage.png"]) 上使用 edgeinsets:UIEdgeInsetsMake(backgroundImage.size.height-1,0,0,0) 和 resizingMode:UIImageResizingModeStretch

完整的通话看起来像

UIImage* backgroundImage = [UIImage imageNamed:@"backgroundImage.png"];
UIImage* newBackgroundImage = [backgroundImage resizableImageWithCapInsets:UIEdgeInsetsMake(backgroundImage.size.height-1,0,0,0) resizingMode:UIImageResizingModeStretch];

现在您可以尝试使用此图像来创建模式:

[self.tableView setBackgroundColor:[UIColor colorWithPatternImage:newBackgroundImage]];
于 2013-04-23T23:45:50.043 回答
0

这对我有用:

UIImageView* bgImageView = [[UIImageView alloc] initWithFrame:self.tableView.frame];
bgImageView.image = [UIImage imageNamed:@"bg"];
bgImageView.contentMode = UIViewContentModeTop;
[self.tableView addSubview:bgImageView];
[self.tableView sendSubviewToBack:bgImageView];

就我而言,它运行良好。我没有用很多可重复使用的单元格对其进行测试。但它应该工作:D

于 2014-06-06T16:43:33.613 回答