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"]]; 

先谢谢你!

请使用以下代码。

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

谢谢,

我认为这个方法更清洁:

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

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

简单的迅捷版本将会

 let tempImageView = UIImageView(image: UIImage(named: "yourImage")) tempImageView.frame = self.tableView.frame self.tableView.backgroundView = tempImageView; 
  UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]]; [tempImageView setFrame:self.tableView.frame]; self.tableView.backgroundView = tempImageView; [tempImageView release]; 

这工作完美。 感谢Jona的Ravin

一个IBDesignable tableview子类,可以让你从界面构build器中附加一个图像

 import UIKit @IBDesignable class DesignableTableView: UITableView { @IBInspectable var backgroundImage: UIImage? { didSet { if let image = backgroundImage { let backgroundImage = UIImageView(image: image) backgroundImage.contentMode = UIViewContentMode.ScaleToFill backgroundImage.clipsToBounds = false self.backgroundView = backgroundImage } } } } 

这工作得很好,如果你想为你的背景使用图案图像。

 UIImage *image = [UIImage imageNamed:@"something.png"]; self.tableView.backgroundView = nil; self.view.backgroundColor = [UIColor colorWithPatternImage:image]; 
 [TableView setBackgroundView:nil]; [TableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"apple.png"]] ]; 

有点晚,但也许所有其他寻找解决scheme。 我可以通过在UITableViewControllerviewDidLoad方法中使用下面的代码来完成这项工作:

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

或只使用背景颜色:

 self.parentViewController.view.backgroundColor = [UIColor scrollViewTexturedBackgroundColor]; self.tableView.backgroundColor = [UIColor clearColor]; 

我花了一段时间才弄清楚,但现在它像一个魅力。

Objective-C版本:

 cell.backgroundColor = [UIColor clearColor]; 

另请参阅: 如何创build具有透明背景的UITableViewCell

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