UIButton
カスタムセルの中にあります。セルを選択すると、ボタンの状態も「強調表示」に変わります。
私はその行動を防ぎたいのです。ボタンは、特に触れたときにのみ状態を変更する必要があります(私はそれを自分で処理しますIBAction
)。
出来ますか?
UIButton
カスタムセルの中にあります。セルを選択すると、ボタンの状態も「強調表示」に変わります。
私はその行動を防ぎたいのです。ボタンは、特に触れたときにのみ状態を変更する必要があります(私はそれを自分で処理しますIBAction
)。
出来ますか?
メソッドをサブクラス化UIButton
してオーバーライドすることができ、setSelected:
メソッドを呼び出し[super setSelected:]
たり呼び出したりすることはできません。[super setSelected:NO];
自分で選択したい場合は、[super setSelected:YES];
これは私が最終的に使用したものです(カスタムセルの実装内で):
- (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;
}
セルのクラスオーバーライド:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesBegan:touches withEvent:event];
self.button.highlighted = NO;
}