使用背景颜色方法设置单元格的背景图像不起作用

问题描述:

我有一些'n'个单元格的表格视图。我的问题是单元格的背景图片!使用背景颜色方法设置单元格的背景图像不起作用

我已经知道的事实,UITableViewCell苹果文件明确表示:

注意:如果你想改变一个单元格的背景颜色(由通过backgroundColor属性设置单元格的背景颜色由UIView声明),您必须在tableView:willDisplayCell:forRowAtIndexPath:委托的方法中执行此操作,而不是在数据源的tableView:cellForRowAtIndexPath:中执行此操作。

上面的描述还可以看出here

但我关心的不是改变细胞的颜色,而是它是因为我们知道我们可以利用的cell.As设置背景图片背景颜色属性设置背景图片,即:

if (cell == nil) 
{ 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellIdentifier] autorelease]; 
    cell.backgroundColor = [[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"buttonbg.png"]]; 
} 

但是使用的背景颜色为背景图片设置为表视图细胞不能正常工作 ,当我试图改变形象,但没有颜色,没有按为何上述方法/属性在数据源方法中工作d(在索引路径上行的单元格)

另外令我惊讶的是,我发现使用图像视图并将视图设置为单元格的背景视图完美,并且由Mr.Ammy Worral在link中提出了相同的建议。即:

UIImage *cellImage = [UIImage imageNamed:kCellImage]; 
UIImageView *cellImageView = [[UIImageView alloc]initWithImage:cellImage]; 
[cell setBackgroundView:cellImageView]; 

但我的疑问是,为什么不与细胞的背景色方法的背景图像的工作!

需要一些解释!

感谢所有提前:)

它不工作,因为做的UITableView该单元格的外观做一些修改你的cellForRowAtIndexPath返回后吧:解决方案是继承你的单元格并覆盖layoutSubviews方法并在那里进行定制。

+0

感谢您的回应,我明白了您的观点,但即使在tableView:willDisplayCell:forRowAtIndexPath:方法中,UITableView也会进行修改na,那么为什么在cellForRowAtIndexPath方法中没有任何影响 – 2012-07-27 06:30:28

+0

@EshwarChaitanya你试过这个吗?它不工作吗? – 2012-07-27 06:35:44

+0

我不是在询问子类化和你给Mr.H2CO3的解决方案,我正在谈论你为什么背景颜色属性在数据源方法中不起作用的原因!正如你所说的,tableView在细胞外观上做了一些修改,类似的应用在委托方法也na即的tableView:willDisplayCell:forRowAtIndexPath:为什么在数据源的方法这里,而不是做的颜色属性的工作,我问一下,谢谢:) – 2012-07-27 06:48:01

tableview将自动设置单元格的背景颜色。它确实是AFTER -tableView:cellForRowAtIndexPath:,当然:) 你有两个选择: 1)在你的单元格中添加一个额外的视图并设置它的背景颜色(几乎你所做的) 2)implement -tableView :willDisplayCellAtIndexPath:在你的数据源/委托(或者这些行之间的东西,cf苹果文档的确切名称),并手动设置单元格的背景颜色。

+0

对不起Mr.kra我特别提到我的担心不是关于设定/更改背景单元格的颜色,而不是它的单元格的背景颜色属性的设置图像,请再次通过我的帖子和我留在下面的评论先生H2CO3的答案,所以这将是很清楚:) – 2012-07-27 09:05:00

+0

我明白你的后,你想设置单元格的背景颜色。事实上,颜色实际上是一个模式图像在这里是不相关的:)这个表格将单元格的颜色设置为它自己的AFTER cellForRowAtIndexPath。之所以这么做是因为它需要一个单元格来改变单元格的背景。因此,在cellForRow中设置颜色将不起作用,因为表将覆盖该颜色。任何后来的电话都可以工作(例如,willDisplayCellAtIndexPath工作正常) – kra 2012-07-27 18:22:42

+0

是的了解和Mr.H2CO3使我更清楚,任何如何+1的答案和关注,谢谢:) – 2012-07-30 05:16:33