2016-06-09 225 views
-1

enter image description here在我的tableview中,單元格是自定義單元格,並且其中有按鈕和標籤。 標籤和按鈕背景顏色是綠色。選擇行並更改按鈕顏色

當我點擊特定的行,然後按鈕顏色變化和標籤背景顏色就像它。這裏我使用下面的代碼來設置標籤背景顏色通過圖層,

cell.lblCountMsg.backgroundColor = [UIColor clearColor]; 
cell.lblCountMsg.layer.backgroundColor = [UIColor colorWithRed:110/255.0 green:189/255.0 blue:82/255.0 alpha:1.0].CGColor; 

但是,相同的代碼不適用於按鈕。我嘗試與層也

cell.btnTeting.backgroundColor = [UIColor clearColor]; 
cell.btnTeting.layer.backgroundColor = [UIColor colorWithRed:110/255.0 green:189/255.0 blue:82/255.0 alpha:1].CGColor; 

但未設置綠色,也改變了選擇顏色的顏色。

請參閱我的屏幕截圖(突破新)爲綠色。 請幫我找到解決辦法。 在此先感謝。

+0

不完美的問題。你想設置綠色作爲按鈕的背景色嗎? – Lion

+0

我已經設置了綠色按鈕。但是當我選擇原始顏色而不是chage時。@ Lion –

+0

是否可以更改標籤但不更改按鈕?是這樣嗎? – Lion

回答

1

你應該實現didSelectRowAtIndexPath類似,

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

// Here your custom cell's class instead of UITableViewCell 
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 

cell.btn.backgroundColor = [UIColor redColor]; 

} 
+0

這是行不通的。 –

+0

用你的'didselecrrow'和'cellforrowatinexpath'編輯你的問題。 Amd告訴我什麼是確切的問題 – Lion

+0

沒有任何代碼在didselected的相關按鈕顏色 –

1

如果你做一個UITableViewCell子類,嘗試重寫

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated 

方法。在這種方法中,當單元格突出顯示時,您可以更改單元格中的視圖。

因此,例如:

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated { 
    self.btnTeting.backgroundColor = [UIColor colorWithRed:110/255.0 green:189/255.0 blue:82/255.0 alpha:1.0]; 
} 

修訂

@interface SuggestedGroupCell() 
@property (strong, nonatomic) IBOutlet UIButton *btnSubScribe; 
@end 

@implementation SuggestedGroupCell 
    - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated { 
     self.btnSubScribe.backgroundColor = [UIColor colorWithRed:110/255.0 green:189/255.0 blue:82/255.0 alpha:1.0]; 
    } 
@end 
+0

我怎樣才能設置indexPath ... => - (void)setHighlighted:(BOOL)高亮動畫:(BOOL)動畫推薦組GroupCell *單元=(SuggestedGroupCell *)[tblGroupList cellForRowAtIndexPath:indexPath]; cell.btnSubScribe.backgroundColor = [UIColor colorWithRed:110/255.0 green:189/255.0 blue:82/255.0 alpha:1.0]; } –

+0

您需要在您的SuggestedGroupCell類中添加該方法。 –

+0

是的,但我怎麼能得到我的btn測試? –

0

如果要更改按鈕的背景顏色,刪除此行,然後嘗試:

cell.btnTeting.layer.backgroundColor = [UIColor colorWithRed:110/255.0 green:189/255.0 blue:82/255.0 alpha:1].CGColor; 

但如果你想改變按鈕標題顏色,你可以編寫這樣的代碼:

[cell.btnMorePupils setTitleColor:[UIColor redColor] forState:UIControlStateNormal] 

這裏UIControlState你可以把什麼都喜歡UIControlStateNormal,UIControlStateSelected等按您的要求。

+0

不是標題顏色設置背景顏色 –

+0

比簡單的使用這個:[cell.btnTeting setBackgroundColor:[UIColor redColor]];沒有必要設置layer.backgroundcolor – sunshine

+0

我也試試這個,..你創建演示並檢查 –