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方法:方法。然而,这有点破解。