2012-02-16 6 views
0

私は1つのセクションを持つUITableViewを持っています。セルをクリックすると、didSelectRowAtIndexPathが期待どおりトリガーされます。 1つの画面にテーブルビューにそれ以上の行が表示され、テーブルビューを垂直方向にスクロールして行をクリックすると、didSelectRowAtIndexPathは呼び出されません。これは、同じ行をもう一度クリックすると発生します。スクロールするときにテーブルビューがどのように機能するのでしょうか?そうでなければ、私は行方不明のものがありますか?助けていただきありがとうございます。 スクロールのUITableViewはdidSelectRowAtIndexPathを呼び出さない

+0

テーブルがまだスクロールしている場合、最初のタッチはdidSelectRowAtIndexPathを呼び出さずにスクロールを停止します。これはあなたが意味することですか?そうでない場合は、より多くの説明と関連性のあるコードスニペットを追加してください。 – jackslash

+0

スクロールを停止するために1回タップした後、何もしなかった別のタップで行を選択しようとしました。あなたが投稿したい特定のコード/メソッドがありますか?私が持っているのは、約20行の単純なテーブルビューです。私は行を2回選択した後に呼び出されるdidSelectRowAtIndexPathメソッドにブレークポイントを持っています... – user678229

+0

すべて貼り付けてみてください。おそらくティムは正しいです... – jackslash

答えて

0

ありがとうございました。 if条件を追加しても役に立たなかった。 nibファイルでスクロールが無効になり、問題が修正されました。再度、感謝します!!

0

問題は、cellForRowAtIndexPathがデキューを間違って使用していることです。

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *SingleCellIdentifier = @"selectioncell"; 
    UITableViewCell *selectionCell = [tableView dequeueReusableCellWithIdentifier:SingleCellIdentifier]; 
    if(selectionCell == nil)  
     selectionCell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SingleCellIdentifier] autorelease]; 
     [selectionCell setSelectionStyle:UITableViewCellSelectionStyleBlue]; 
     [selectionCell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; 
    } 
    [[selectionCell textLabel] setText:[[possibleAnswers objectAtIndex:indexPath.row] answerText]]; 

} 

アイデアはdequeueReusableCellWithIdentifier: はあなたに使用可能なセルが得られますが、使用できない場合、それはnilを返すということです。それが無ければ、それを自分で割り当てるべきです。あなたのコードは、デキューされたセルをフェッチしていましたが、それを無視して、デキューステータスに関係なく単純に割り当てます。これを試して問題が解決するかどうかを確認してください。

+0

私はこの方法のために私のプロジェクト全体を真似しましたが、何も見つかりませんでした – user678229

+0

まあ、ポストコードか、私たちはあなたを助けることができません。 – Tim

+0

*質問*に投稿してください。 – Tim

関連する問題