UITableView背景滚动但不重复

时间:2013-04-17 05:11:21

标签: ios uitableview uiview

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

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

这适用于使用表格进行背景滚动。但是,我的背景图像会变成纯色,因此背景重复而不是,我喜欢它只是向上滚动并适合屏幕高度。然后我可以将self.view的{​​{1}}设置为纯色,看起来很棒。

其他选项似乎是底部的小图片,但这似乎很复杂,我不太明白如何使用backgroundColor绘制背景和blit。

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

Example Of What I Want

2 个答案:

答案 0 :(得分: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]];

答案 1 :(得分: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