0

tableViewに2つのボタンがあり、残りはセルとして使用されているアプリケーションがあります。セルにbackgroundimageビューを使用しています。このように`

 UIImageView* img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"cell_with_arrow.png"]];
            [cell setBackgroundView:img];
            [img release]; 

次に、選択した背景色を次のように変更します

UIView *violetColor = [[UIView alloc] init];
  violetColor.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"trans.png"]];
        cell.selectedBackgroundView = violetColor;
        [violetColor release];

セル内ではすべて正常に機能していますが、2つのセルに2つのボタンを追加しました。このボタンを選択して押したままにすると、そのボタンが追加されている背景セルの選択した背景色も変更する必要があります。完了しましたが、ボタンのタップを離したときにのみセルの背景色が変化するという問題があります。そのボタンを握っているときではなく、ボタンを握っているときも変更する必要があります。私は今このようにやっています

UIView *contentView = (UIView *)[sender superview];
    UITableViewCell *cell = (UITableViewCell *)[contentView superview];
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];

  [self tableView:self.tableView didSelectRowAtIndexPath:indexPath];

ボタンアクションで。しかし、私が保持しているときのセルでは、ボタンではなく、色が変化するのはなぜですか?誰かが私を助けることができますか?

4

1 に答える 1

1

UIControlEventTouchDownの代わりに、ボタンのイベントを使用して要件を達成できますUIControlEventTouchUpInside

これがお役に立てば幸いです。

于 2013-03-22T06:39:14.567 に答える