有没有办法在UITableViewController上设置背景视图?
我尝试使用我在UIViewController
上使用的代码,但是视图覆盖了表视图的所有内容。如果我在cellForRowAtIndexPath-method
中添加背景视图,它根本不会显示。以前有没有人这样做过,或者知道如何做到这一点?下面是我使用的代码:
UIImage *image = [UIImage imageNamed: @"background.jpg"];
UIImageView *backImage = [[UIImageView alloc] initWithImage: image];
[self.view addSubview: backImage];
[self.view sendSubviewToBack: backImage];
发布于 2010-03-17 10:38:23
(这基本上与上面的Hans Espen的解决方案相同,但为了简洁,使用了方便的方法)
将此代码放入-[UITableViewControllerSubclass viewDidLoad]
方法中:
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"BackgroundPattern.png"]];
在viewDidLoad方法中避免几个自动释放是没有意义的,因为它只被很少调用(当视图实际加载时),因此对性能的影响可以忽略不计。
注意:您应该始终在iPhone上使用PNG图像,而不是JPEG或任何其他格式。
发布于 2012-03-01 00:46:33
我知道已经很久了,但为了记录在案..我想我找到了一个使用UITableView.backgroundView
的更好的解决方案
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"lisbon.png"]];
self.tableView.backgroundView = imageView;
[imageView release];
我在iPhone上尝试了320x480的图像大小,效果很好(我也尝试过.jpg )。
发布于 2009-05-22 15:10:52
实际上,我让它工作了!:)
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];
https://stackoverflow.com/questions/898351
复制相似问题