4

テーブルビューを編集モードに設定すると、行を削除した後にテーブルをスクロールすると、セル編集コントロール (左側の赤いマイナス記号) が残りの部分でランダムな状態 (垂直または水平に変わる) になることがわかりました。テーブルをスクロールすると、セルが表示されます。おそらく、次のようにセルを再利用しているためです。

cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

エディット コントロールをセルごとに正しい状態にするにはどうすればよいですか? タップしてセルを削除しない限り、常にデフォルトの水平状態になっているはずです。

編集:セルコードは次のとおりです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *cellIdentifier = @"WhateverIdentifier";
    MyCell *cell = nil;

    //This IF statement fixes the problem, but then I'm not reusing the cells
    if (!tableView.isEditing) {
        cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    }

    if (!cell) {
        cell = [[[NSBundle mainBundle] loadNibNamed:@"MyCell" owner:self options:nil] objectAtIndex:0];

    }

    //customize cell

    return cell;
}
4

2 に答える 2

7

カスタムセル[super prepareForReuse]のメソッドを呼び出していますか?prepareForReuse

それは私の問題を解決しました。

于 2013-10-21T12:47:18.923 に答える