我正在尝试将png图像设置为我的tableview的背景。使用以下代码都很好!但仅限iPhone模拟器。如果我尝试在iPhone设备上运行该应用程序,则tableview的背景仍为白色(或清晰)。你尝试设置背景颜色的方式是什么东西。直到下面我一直在尝试很多方法,但都有同样的问题。
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
提前谢谢!
答案 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;