2009-07-13 89 views

回答

3

UIImageView *background = [[UIImageView alloc]initWithImage: [UIImage imageNamed: @"background.jpg"]]; 
    [tableView addSubview: background]; 
    [tableView sendSubviewToBack: background]; 
+1

谢谢,试过了,但我认为sendSubviewToBack消息不起作用,因为它应该在这种情况下:UIImageView被定位在单元格之上。任何线索? – 2009-07-13 14:06:08

+1

这种方法是我第一次尝试。发送到后面仍然会将它放在单元格上方。 – 2010-11-01 18:42:54

-6

一个可能的答案是 - 很明显 - 已经在计算器:

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

编号:iPhone - Setting background on UITableViewController

编辑:这不是一个完美的答案,我知道:)

+2

这将使用每个单元格中的背景部分。所以如果你有更高的背景图像,那么一个单元格将无法工作。 – OgreSwamp 2010-07-19 20:49:22

+6

这不是正确的答案,因为背景图像不会与表格一起滚动。 – Bobo 2011-05-29 16:07:04

+1

这应该工作吗?我面临着@OgreSwamp提到的同样的问题,尽管背景可以用tableview滚动,但单元格使用每个单元格中的背景部分。如果这个解决方案不起作用,为什么这被接受为正确答案? – 2012-03-19 10:35:05

3

我会认为答案是继承UITableView并覆盖layoutSubviews。在UITableView中,您应该创建一个指向背景UIImageView的属性。

当你重写layoutSubviews只写

-(void) layoutSubviews { 
    [self sendSubviewToBack: backgroundImageView]; 
    [super layoutSubviews]; 

} 
+0

不幸的是,这不足以解决视图混洗的所有角落案例。 – steipete 2011-09-01 09:58:01

+0

怎么这样?它实际上解决了问题,我自己尝试过。你在说什么角落案件? – thewormsterror 2011-09-08 23:41:11

+0

有时,UITableView洗牌视图。这不是确定性的,并且在iOS版本中不同。不要使用这个。我用滚动UIImageView重新定位在scrollViewDidScroll – steipete 2011-09-09 08:36:11

6

你必须通过的UITableView的backgroundColor属性来设置背景图片:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]; 
+1

如果它不是'UITableViewController',你必须使用'tableView.backgroundColor = ...' – Jochen 2012-09-24 13:45:07

+0

这是一个不错的 – Eugene 2013-03-12 13:09:12

+1

这是否也适用于iOS6?我尝试在我的viewDidLoad中,但没有任何反应,它仍然显示标准的grouptableview bg。 – JonEasy 2013-04-17 13:41:07