UITableView背景图片

use*_*153 60 iphone background background-color uitableview

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

self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
Run Code Online (Sandbox Code Playgroud)

先感谢您!

Rav*_*vin 173

请使用以下代码.

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

self.tableView.backgroundView = tempImageView;
[tempImageView release];
Run Code Online (Sandbox Code Playgroud)

谢谢,

  • 使用`bounds`代替`[tempImageView setFrame:self.tableView.bounds];` (6认同)

Nik*_*huk 17

我认为这种方法更清洁:

UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"TableBackground.jpg"]];
self.tableView.backgroundColor = background;
[background release];
Run Code Online (Sandbox Code Playgroud)

  • 在视网膜设备上使用此解决方案会导致图像拉伸。只是需要注意一些事情。 (2认同)

Avi*_*are 10

简单的swift版本将是

let tempImageView = UIImageView(image: UIImage(named: "yourImage"))
tempImageView.frame = self.tableView.frame
self.tableView.backgroundView = tempImageView;
Run Code Online (Sandbox Code Playgroud)


Nic*_*rge 7

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


小智 5

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

self.tableView.backgroundView = tempImageView;
 [tempImageView release];
Run Code Online (Sandbox Code Playgroud)

这很完美.感谢Jona的Ravin