UITableViewCell背景图片和选择问题

问题描述:

这是我的第一个iphone应用程序,我有我的tableView样式的麻烦。UITableViewCell背景图片和选择问题

我有两个图像(png),一个用于标准单元状态,另一个用于选定状态。

以我子类的细胞,我尝试以下:

1)建立前的backgroundView和selectedBackgroundView

UIImage *ib = [UIImage imageNamed:@"tab.png"]; 
UIImageView *back = [[UIImageView alloc] initWithImage:ib]; 
self.backgroundView = back; 
[back release]; 

UIImage *is = [UIImage imageNamed:@"selected_tab.png"]; 
UIImageView *selected = [[UIImageView alloc] initWithImage:is]; 
self.selectedBackgroundView = selected; 
[selected release]; 

标准单元是好的,但被选择时,两个图像被示出。

2)只是在选择背景视图玩:

// storing the 2 uiviews in class attributes 
UIImage *ib = [UIImage imageNamed:@"tab.png"]; 
UIImageView *back = [[UIImageView alloc] initWithImage:ib]; 
self.storedStandard = back; 
[back release]; 
UIImage *is = [UIImage imageNamed:@"selected_tab.png"]; 
UIImageView *selected = [[UIImageView alloc] initWithImage:is]; 
self.storedSelected = selected; 
[selected release]; 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 
    if (selected) { 
     self.backgroundView = self.storedSelected; 
    } 
    else { 
     self.backgroundView = self.storedStandard; 
    } 

} 

它几乎工程,但图像不适合的电池,我不知道它们延伸到单元格的大小。

对于我来说,第一个解决方案应该是基于属性名称的解决方案,第二个解决方案看起来像一个黑客(就像我见过的90%的教程),所以我有点沮丧。

总结:为什么第一个不起作用,我如何强制图像占据所有的单元格空间?

感谢很多:)

如果你有一个的UITableViewDelegate,你应该能够只是改变backgroundView的图像中的willSelectRowAtIndexPath:法,然后改变它放回didSelectRowAtIndexPath方法:方法。然而,这有点破解。