iPhone – 在UITableViewController上设置背景

有没有办法在UITableViewController上设置背景视图?

我试着用我在UIViewController上使用的代码,但视图来自表视图的所有内容。 如果我在cellForRowAtIndexPath-method添加背景视图,它根本不显示。 有没有人以前做过或有一个想法如何可以做? 这是我正在使用的代码:

 UIImage *image = [UIImage imageNamed: @"background.jpg"]; UIImageView *backImage = [[UIImageView alloc] initWithImage: image]; [self.view addSubview: backImage]; [self.view sendSubviewToBack: backImage]; 

(这与Hans Espen的解决scheme基本相同,但是为了简洁起见使用便利方法)

把它放在你的 – [UITableViewControllerSubclass viewDidLoad]方法中:

 self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"BackgroundPattern.png"]]; 

在viewDidLoad方法中避免一些autoreleases没有意义,因为它只是很less被调用(当视图实际加载时),因此对性能的影响可以忽略不计。

注意您应该始终在iPhone上使用PNG图像,而不是JPEG或任何其他格式。

我知道这是很长的时间,但只是为了logging..我想我find了一个更好的解决scheme,使用UITableView.backgroundView

 UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"lisbon.png"]]; self.tableView.backgroundView = imageView; [imageView release]; 

我尝试在iPhone上的图像大小为320×480,并完美(我也尝试过.jpg)。

其实,我得到它的工作! 🙂

 NSString *backgroundPath = [[NSBundle mainBundle] pathForResource:@"background" ofType:@"jpg"]; UIImage *backgroundImage = [UIImage imageWithContentsOfFile:backgroundPath]; UIColor *backgroundColor = [[UIColor alloc] initWithPatternImage:backgroundImage]; self.tableView.backgroundColor = backgroundColor; [backgroundColor release]; 

对于Swift使用这个,

 self.tableView.backgroundView = UIImageView(image: UIImage(named: "backgroundImage.png")) 
 self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage.png"]];