UITableView背景图片

时间:2011-04-28 21:42:05

标签: iphone uitableview background background-color

我正在尝试将png图像设置为我的tableview的背景。使用以下代码都很好!但仅限iPhone模拟器。如果我尝试在iPhone设备上运行该应用程序,则tableview的背景仍为白色(或清晰)。你尝试设置背景颜色的方式是什么东西。直到下面我一直在尝试很多方法,但都有同样的问题。

self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];

提前谢谢!

12 个答案:

答案 0 :(得分:170)

请使用以下代码。

UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame]; 

self.tableView.backgroundView = tempImageView;
[tempImageView release];

谢谢,

答案 1 :(得分:17)

我认为这种做法更清洁:

UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"TableBackground.jpg"]];
self.tableView.backgroundColor = background;
[background release];

答案 2 :(得分:10)

简单的swift版本将是

let tempImageView = UIImageView(image: UIImage(named: "yourImage"))
tempImageView.frame = self.tableView.frame
self.tableView.backgroundView = tempImageView;

答案 3 :(得分:7)

您的图片实际上是TableViewBackground.PNG(注意大写字母)吗?您需要在iOS设备上完全匹配大小写,而不需要在模拟器中完全匹配。

答案 4 :(得分:5)

 UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame]; 

self.tableView.backgroundView = tempImageView;
 [tempImageView release];

这很完美。感谢Ravin by Jona

答案 5 :(得分:3)

IBDesignable tableview子类,允许您从界面构建器

附加图像
{
"minStartTimeNs": {mintime},
"maxEndTimeNs": {maxtime},
"dataSourceId": "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps"
}

答案 6 :(得分:2)

[TableView setBackgroundView:nil];
[TableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"apple.png"]] ];

答案 7 :(得分:1)

如果你想为你的背景使用一个模式图像,这个效果非常好。

UIImage *image = [UIImage imageNamed:@"something.png"];
self.tableView.backgroundView = nil;
self.view.backgroundColor = [UIColor colorWithPatternImage:image];

答案 8 :(得分:0)

有点晚了但也许其他所有人都在寻找解决方案。我可以使用viewDidLoad的{​​{1}}方法中的以下代码来完成这项工作:

UITableViewController

或仅使用背景颜色:

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
self.tableView.backgroundColor = [UIColor clearColor];

我花了一段时间来弄明白这一点,但现在它就像一个魅力。

答案 9 :(得分:0)

Objective-c版本:

cell.backgroundColor = [UIColor clearColor];

另见: How to create a UITableViewCell with a transparent background

答案 10 :(得分:0)

感谢@Ravin的回答。

在Swift 5.0中:

    let tempImageView = UIImageView(image: UIImage(named: "justin_bieber_topless.png"))
    tempImageView.frame = self.tableView.frame
    self.tableView.backgroundView = tempImageView;

答案 11 :(得分:-3)

UIImageView *imageviewTemp = [[UIImageView alloc] init];
[(UIImageView *)imageviewTemp sd_setImageWithURL:[NSURL URLWithString:self.stringOfPassedImage]];
[imageviewTemp setFrame:self.tableView.frame];
self.tableView.backgroundView = imageviewTemp;