2012-02-23 8 views
0

左に画像のある表のセルがあります。今、1つのセルをタップするたびに、イメージが変わりますが、私は、セルの左側の領域をタップするとイメージが変わるだけです。これどうやってするの?UITableViewCellの一部のみを選択する方法

今私が持っている:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    if (cell.imageView.image == [UIImage imageNamed:@"checkboxfull.png"]) { 

     cell.imageView.image = [UIImage imageNamed:@"checkboxblank.png"]; 
    } 
    else if(cell.imageView.image == [UIImage imageNamed:@"checkboxblank.png"]) { 

     cell.imageView.image = [UIImage imageNamed:@"checkboxfull.png"]; 
     //[alert show]; 
    } 
} 

答えて

4

表のセルは、ちょうどUIViewです。カスタムセルを作成し、サブクラスのUIImageViewまたはタップに応答するボタンを使用します。

テーブルセルの- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)eventを使用して、位置を計算します。テーブルセルの詳細については

は、私は各「UIImageView」の「UIGestureRecognizer」を追加することをお勧めhere

+0

私は完全にこのサルです。もう少し説明してください...ありがとう – user1191343

+0

[記事](https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells)をご覧ください。 html) –

+0

優秀、ありがとうございます。 – user1191343

2

を見てApple Docsを参照してください。 イメージが選択されたと判断するには、タグを使用してください。

0

Erikの偉大な答えを助けてくれるように、

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = touches.anyObject; 
    CGPoint location = [touch locationInView:self.addRemoveButton]; 
    if (CGRectContainsPoint(self.addRemoveButton.bounds, location)) 
    { 
     [super touchesEnded:touches withEvent:event]; 
    } 
} 
関連する問題