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。 我可以通过在UITableViewController
的viewDidLoad
方法中使用下面的代码来完成这项工作:
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;