2011-02-03 11 views
3

私はMail.appスタイルチェックマークを有効にしたい基本的なUITableViewを持っていますが、選択スタイルはありません。複数選択テーブルビューセルと選択スタイルなし

ただし、これは決して選択肢にチェックマークを表示しません(空の円が表示されます)。どのようにそれを修正するための任意のアイデア?私は文書化されていない機能を使用していることを知っていますが、私は本当にチェックマークのサポートを追加したいと思います。実際の例では非常にカスタマイズされたUITableViewCellを使用しています。選択スタイルを有効にすることはできません。応答のための

sample table view

答えて

6
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil]; 

    if (self.tableView.isEditing) { 
     cell.selectionStyle = UITableViewCellSelectionStyleBlue; 
    } else { 
     cell.selectionStyle = UITableViewCellSelectionStyleNone; 
    } 

    return cell; 
} 

-(UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return UITableViewCellEditingStyleMultiSelect; 
} 

-(IBAction) switchEditing { 
    [self.tableView setEditing:![self.tableView isEditing]]; 
    [self.tableView reloadData]; // force reload to reset selection style 
} 
+1

ありがとう!これはほぼ完璧に動作します!選択したセルに表示されるターコイズのハイライトを削除することが可能かどうかを知っていますか? –

+1

willSelectRowAtIndexPathを呼び出した後、ターコイズのハイライト表示(UITableViewCellSelectedBackground)が挿入されるため不可能と思われます。 didSelectRowAtIndexPathで削除すると、セルがタッチされている間も表示されます。 – Felix

+0

UITableViewCellをサブクラス化し、setSelected:animatedをオーバーライドすることができます。 – Felix

関連する問題