2013-07-08 57 views
0

我有一些子視圖UITableViewCell。我需要這個子視圖顯示在單元格的頂部被選中,而不是。問題是這個單元格有selectedBackgroundView,它在select上隱藏了我需要的子視圖。UITableViewCell allways顯示一些子視圖

UIView *bgView = [[UIView alloc] initWithFrame:cell.bounds]; 
bgView.backgroundColor = someColor; 
cell.selectedBackgroundView = bgView; 

我也試過cell.selectedBackgroundView addSubview:,但它並沒有幫助。

所以問題是:如何添加一些子視圖到單元格,使其位於頂部,如果選擇單元格?

+0

你在哪兒定義了你的子視圖,請編輯你的代碼。在bgView之後定義你的子視圖,然後嘗試相同的方法。 – 2013-07-08 12:20:07

回答

0

設置cell.selectionStyle = UITableViewCellSelectionStyleNone;

+0

請閱讀這個問題,我選擇了背景視圖,所以我的單元格必須可選 –

+0

我知道你有一個隱藏在單元格選擇中的子視圖,即使你選擇單元格,你仍然想要它。那是對的嗎? – soryngod

+0

是的,但selectedBackgroundView必須可見,並且單元格必須可選 –

0

,如果你有一個自定義的細胞,可以實現

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
    [super setSelected:selected animated:animated]; 
    [self bringSubviewToFront:myCustomView]; 
} 

如果不是,則邏輯是相同的,只是在

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

方法)

+0

我想你忘了[super setSelected:selected animated:animated];但是設置bringSubviewToFront仍然沒有幫助。我的子視圖隱藏在selectedBackroundView後面 –

0

您必須將您的子視圖添加到tableViewCell的contentView,而不是細胞直接。 即使它是您已經實現的UITableViewCell的自定義子類,您也必須將其他子視圖添加到tableViewCell的contentView中。當選中單元格時,contentView及其子視圖將不會隱藏。

[cell.contentView addSubview:yourView]; 
+0

我在contentView中添加了子視圖,但在tableview變爲選中狀態後它仍然隱藏 –