2010-03-11 174 views
0

我已經按照蘋果的AdvancedTableViewCells的代碼,並建立與細胞背景圖像的表視圖。現在我想改變它,使其不是藍色突出顯示顏色,而是顯示我的圖像的較暗版本。我需要遵循的步驟是什麼?我正在使用帶有自定義NIB的UITableViewCell子類。我的背景圖像是作爲cell.backgroundView實施的。如何在表格視圖單元格上設置突出顯示的圖像?

我拿到目前爲止的步驟是:

  • 改變細胞的selectionStyle爲「無」
  • 設置我的UILabel子視圖中突出顯示的顏色淺色
  • 創建我的背景較暗的版本作爲單獨的圖像
  • 覆蓋setSelected: animated:

我想知道接下來的步驟。

回答

0

您是否嘗試過更換內部setSelected: animated:的形象呢?

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
    [super setSelected:selected animated:animated]; 
    if (selected) { 
     // replace image here 
     // or move a pointer from one image to another 
    } 
} 
+0

感謝您的回答。這是我正在嘗試的,但我必須手動處理取消選擇。 – 2010-03-12 02:33:42

0

我發現了selectedBackgroundView屬性。我使用這種方法,而不是setSelected: animated:

- (id)initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [super initWithCoder:aDecoder]; 

    NSString *backgroundImagePath = [[NSBundle mainBundle] pathForResource:@"TableBackground" ofType:@"png"]; 
    UIImage *backgroundImage = [UIImage imageWithContentsOfFile:backgroundImagePath]; 
    self.backgroundView = [[[UIImageView alloc] initWithImage:backgroundImage] autorelease]; 
    self.backgroundView.frame = self.bounds; 

    NSString *selectedBackgroundImagePath = [[NSBundle mainBundle] pathForResource:@"TableBackgroundDark" ofType:@"png"]; 
    UIImage *selectedBackgroundImage = [UIImage imageWithContentsOfFile:selectedBackgroundImagePath]; 
    self.selectedBackgroundView = [[[UIImageView alloc] initWithImage:selectedBackgroundImage] autorelease]; 
    self.selectedBackgroundView.frame = self.bounds; 

    return self; 
} 

我不知道這是否是正確的方法,因爲它引入了一些其他問題。有一件事是單元selectionStyle必須是UITableViewCellSelectionStyleNone以外的東西,否則它不會顯示背景圖像。取消動畫也停止了。我會開一個關於這些問題的新問題。

相關問題