13

Google、Stackoverflow、リンゴのドキュメントをかなり検索した後、ほとんどあきらめました。

顧客をインデックス化するアプリを作成していますが、リストが非常に長くなる可能性があるため、セクション インデックスを使用してより高速にナビゲートしています。私の問題は下の図に示されています。

http://i.stack.imgur.com/i2tTx.png

アイテムをドラッグして削除ボタンを表示すると、セクション インデックス バーの下に部分的に隠れてしまいます。

tableview または tableviewcells の幅を設定するコードはありません。私に関する限り、セクション インデックスを実際に変更することはできません。

編集:

問題は、テーブルビューのセルが重なる前に終了させる方法で、削除ボタンが完全に表示されるようにします。

編集2:

私はすでにセルフレームを小さく設定しようとしましたが、うまくいきませんでした。

cell.frame = CGRectMake(cell.frame.origin.x, cell.frame.origin.y, cell.frame.size.width-30, cell.frame.size.height);

テーブルビューでも同じことを試しましたが、UITableViewControllerにあるため、サイズを変更できません。

self.tableView.frame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y, self.tableView.frame.size.width-30, self.tableView.frame.size.height);
4

3 に答える 3

10

簡単な回避策として、インデックスの背景色を clearColor に設定することで、インデックスの視覚的なオーバーラップを解決しました。

self.tableView.sectionIndexBackgroundColor = [UIColor clearColor];

* これは視覚的に良く見えますが、インデックスはまだ tableViewCell に重なっています。

別の可能な回避策は、編集モードに入るときにインデックス バーを非表示にすることです。

// allow editing
[self.tableView setEditing:YES animated:YES];
// hides the index
self.tableView.sectionIndexMinimumDisplayRowCount = NSIntegerMax;
于 2013-09-30T06:38:01.937 に答える
6

inEditModeメソッドはトリックを行う必要があります。以下に、編集中にインデックスを非表示にし、編集が完了すると再び表示する完全なコードを埋め込みます。

-(void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath{
    [self inEditMode:YES];
}

-(void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath{
    [self inEditMode:NO];
}
//on self.editButtonItem click
-(void)setEditing:(BOOL)editing animated:(BOOL)animated{
    [super setEditing:editing animated:animated];
    [self inEditMode:editing];
}

-(void)inEditMode:(BOOL)inEditMode{
    if (inEditMode) { //hide index while in edit mode
        self.tableView.sectionIndexMinimumDisplayRowCount = NSIntegerMax;
    }else{
         self.tableView.sectionIndexMinimumDisplayRowCount = NSIntegerMin;
    }
    [self.tableView reloadSectionIndexTitles];
}
于 2013-10-17T10:58:41.857 に答える