我正在使用SectionIndexTitlesForTableview
方法为Tableview设置标题。当我滑动一个单元格时,此标题旁边会出现删除按钮,看起来很奇怪。如何在删除按钮出现时隐藏此indexTitles,并在删除按钮消失时显示。
答案 0 :(得分:2)
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];
}
答案 1 :(得分:1)
这可能会有所帮助
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
return [tableView isEditing] ? nil: @[@"A",@"B",@"C"];
}
- (void)setEditing:(BOOL)editing
{
[super setEditing:editing];
[self reloadSectionIndexTitles];
}
答案 2 :(得分:0)
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
_someBoolean = YES;
[tableView reloadData];
return YES;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
_someBoolean = NO;
[tableView reloadData];
}
}
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
return _someBoolean ? nil : _yourTitlesArray;
}