2012-01-07 8 views
1

なぜこれが起こっている私は知らないが、私はこのエラーを取得:セル内でUIImageViewを操作するときのエラー?

-[__NSArrayM section]: unrecognized selector sent to instance 0x7e53b70 2012-01-07 15:35:44.108 Timely1[51661:15203] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM section]: unrecognized selector sent to instance 0x7e53b70'

handleTouchが活性化されたとき。ここに画像とタップジェスチャーを追加するための私のコードです。

[cell.imageView setUserInteractionEnabled:YES]; 
[cell.imageView setImage:[UIImage imageNamed:@"checkbox.PNG"]]; 

UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTouch:)]; 
tapped.numberOfTapsRequired = 1; 
[cell.imageView addGestureRecognizer:tapped]; 
[tapped release]; 

してからタッチを処理するための私のコード:

-(void)handleTouch:(UITapGestureRecognizer *)gesture 
{ 
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[array count] inSection:1]; 
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 

    [cell.imageView setImage:[UIImage imageNamed:@"checkbox_checked.PNG"]]; 
    [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:array] withRowAnimation:UITableViewRowAnimationFade]; 
} 

UPDATE:どのように私は誰もがそれを行う方法を知っている(それはトグルのように)それをオフにしたい場合は?私はあなたが使用できると思い、あなたのhandleTouch方法で

+0

以前に直面していた問題は、NSIndexPath * indexPath = [NSIndexPath indexPathForRow:[配列数] inSection:1]という行にあります。代わりに、NSIndexPath * indexPath = [NSIndexPath indexPathForRow:[配列数] -1 inSection:1]を使用する必要があります。 – rishi

+0

ええ、しかし、私はそれが問題だとわかったので、 'self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:array] withRowAnimation:UITableViewRowAnimationFade]を修正する方法を知っていますが、その行をもう使用しないでください。 – Souljacker

+0

NSIndexPathのオブジェクトを配列に渡していますか? – rishi

答えて

2

:私は私のチェックボックスとしてUIButtonで行くことにしましたし、私のUITableViewCellをサブクラス化している

UIImageView *cellImageView=(UIImageView *)gesture.view; 
+0

ありがとうございました。問題は、 '[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:array] withRowAnimation:UITableViewRowAnimationFade];'というエラーであった。 – Souljacker

+0

どうすればいいですか(それをトグルするような)私はそれをやり直す方法を知っていますか? – Souljacker

+0

これは私の仕事を始めましたが、私のイメージの状態だけではさらにデータが必要でしたので、@property(nonatomic、strong)id userDataという追加のプロパティを追加するカテゴリ拡張 '@interface UITapGestureRecognizer(ユーティリティ)'を作成することにしました。 '私は必要な引数を取得して後で取得するためにuserDataと呼ばれます。 – pulkitsinghal

0

、それはトグルビットで、特に簡単に、より論理的なようです。

関連する問題