0

単純なテーブル ビューを想像してみてください。いくつかのセルがあり、単一選択が有効になっています。つまり、セルをタップすると、選択されたままになります。つまり、デフォルト コントロールを使用している場合は青色になります。別のセルをタップすると、前のセルが選択解除され、現在のセルが選択されます。

さて、それを完成させるために(Apple、Apple :-/...)つまり。現在選択されているセルの選択を解除するには、簡単なコードを使用できます

-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath        *)indexPath
{
    UITableViewCell *touchedCell = [self.tableView cellForRowAtIndexPath:indexPath];

    if (touchedCell.isSelected == YES)
    {
        [self.tableView deselectRowAtIndexPath:indexPath animated:NO];
        return nil;
    }
    else
    {
        return indexPath;
    }
}

ただし、キャッチがあります。このメソッドは、iOS6 SDK でのみ使用できます。この方法がないiOS5 SDKの最もシンプルでエレガントなソリューションを教えてください。

4

1 に答える 1

3

3 つの方法すべて:

  • tableView:willSelectRowAtIndexPath:
  • cellForRowAtIndexPath:
  • deselectRowAtIndexPath:アニメーション:

ドキュメントによると、iOS 2.0以降で利用できます。

お役に立てれば!

于 2013-09-05T16:52:03.717 に答える