我有一个基于核心数据/ uitableview的应用程序。实际上到目前为止,80%的代码都等同于Apple Sample app CoreDataRecipes。我的问题是,当我进入编辑模式(通过按下编辑按钮)时,行的左侧没有“删除徽章”。保险杠。
代码与CoreDataRecipes的区别:
我尝试了什么:
我检查了编辑风格是否正常。它应该是默认值,但要确保我添加:
(UITableViewCellEditingStyle)tableView:(UITableView *)tableVieweditingStyleForRowAtIndexPath(NSIndexPath *)indexPath {return UITableViewCellEditingStyleDelete;}
我检查了删除图标是否在我的cellview后面。没有。我现在认为向右移动的单元格行为由iOS处理。
任何想法?一定很简单。
答案 0 :(得分:3)
确保
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
如果未设置为返回YES,则不会启用徽章。默认设置为返回NO
答案 1 :(得分:1)
我认为你还没有添加这条线 单击“编辑”按钮
时tableView.editing=YES
尝试设置!
答案 2 :(得分:1)
由于你的是UIViewController,tableview没有得到setEditing调用。只需添加:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[self.tv setEditing:editing animated:YES];
}
答案 3 :(得分:0)
确保已设置outlet / delegate / datasource 然后这些:
-(void)editButtonTapped
{
[self.tableView setEditing:YES animated:YES];
}
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleDelete;
}