2012-12-28 80 views
2

我在自定義單元格內有UIButton。在選擇單元格後,按鈕將其狀態更改爲「高亮顯示」UIButton繼承選定狀態

我想阻止這種行爲。只有在特別觸摸按鈕時,按鈕纔會改變其狀態(我在IBAction中注意到了這一點)。

可能嗎?

回答

1

這是我最終使用的(在我的Custom cell實現中):

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
    BOOL highlightState = self.btn.highlighted; 
    BOOL selectedState = self.btn.selected; 

    [super setSelected:selected animated:animated]; 

    self.btn.selected = selectedState; 
    self.btn.highlighted = highlightState; 
} 

- (void) setHighlighted:(BOOL)highlighted animated:(BOOL)animated 
{ 
    BOOL highlightState = self.btn.highlighted; 
    BOOL selectedState = self.btn.selected; 

    [super setHighlighted:highlighted animated:animated]; 

    self.btn.selected = selectedState; 
    self.btn.highlighted = highlightState; 
} 
3

你也可以繼承UIButton並重寫setSelected:方法,而不是調用[super setSelected:]或者如果您想自己選擇它與[super setSelected:NO];

稱呼它,稱之爲[super setSelected:YES];

0

在你的細胞的類重寫:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [super touchesBegan:touches withEvent:event]; 
    self.button.highlighted = NO; 
}