2010-08-25 88 views
1

這是我的第一個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%的教程),所以我有點沮喪。

總結:爲什麼第一個不起作用,我如何強制圖像佔據所有的單元格空間?

感謝很多:)

回答

0

如果你有一個的UITableViewDelegate,你應該能夠只是改變backgroundView的圖像中的willSelectRowAtIndexPath:法,然後改變它放回didSelectRowAtIndexPath方法:方法。然而,這有點破解。