2

UIButtonカスタムセルの中にあります。セルを選択すると、ボタンの状態も「強調表示」に変わります。

私はその行動を防ぎたいのです。ボタンは、特に触れたときにのみ状態を変更する必要があります(私はそれを自分で処理しますIBAction)。

出来ますか?

4

3 に答える 3

3

メソッドをサブクラス化UIButtonしてオーバーライドすることができ、setSelected:メソッドを呼び出し[super setSelected:]たり呼び出したりすることはできません。[super setSelected:NO];

自分で選択したい場合は、[super setSelected:YES];

于 2012-12-28T14:21:22.180 に答える
1

これは私が最終的に使用したものです(カスタムセルの実装内で):

- (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;
}
于 2012-12-30T14:11:34.223 に答える
0

セルのクラスオーバーライド:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
  [super touchesBegan:touches withEvent:event];
  self.button.highlighted = NO;
}
于 2012-12-29T09:27:17.757 に答える