不要删除 UITable 的第一行

Posted

技术标签:

【中文标题】不要删除 UITable 的第一行【英文标题】:Don't delete first row of a UITable 【发布时间】:2011-04-05 18:10:39 【问题描述】:

我有一个由模型核心数据填充的 UITable,我不希望用户可以删除表的第一行,所以我这样做:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 

if (editingStyle == UITableViewCellEditingStyleDelete) 
    if (indexPath.row != 0) 
        NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
        [context deleteObject:[self.fetchedResultsController objectAtIndexPath:indexPath]];
        [self saveContext];
    
    // Delete the managed object for the given index path

   

我用这个 if (indexPath.row != 0) ,对吗?我尝试,如果我在编辑模式下推送删除不会发生任何事情......这是正确的还是有更好的方法?

【问题讨论】:

【参考方案1】:

这段代码可以工作,但我认为这是糟糕的 UI 设计。我认为用户不会明白他们不能删除第一行。更有可能的是,他们会认为应用程序未能进入编辑模式。

界面语法教用户假设所有行都是相同的并且具有相同的行为。拥有一个特殊行会迫使用户停下来思考他们选择了哪一行,然后才能预测选择编辑会产生什么效果。让用户必须像这样跟踪应用程序状态是糟糕的 UI 设计。

如果您对第一行有一些特别之处,您可能希望将该数据/函数放在 tableview 标题而不是行中。

【讨论】:

非常感谢...你有一个很好的教程来做这个吗?...把标题放在第一行?

以上是关于不要删除 UITable 的第一行的主要内容,如果未能解决你的问题,请参考以下文章

当用户选择 UITable 行时显示等待屏幕

从数组向 UITable 添加行

UITable 单元格的不同视图

将 UITable 行号从大到小反转(...5,4,3,2,1)

如何在 UITable 中实现 Instagram 评论的效果?

如何使 UIButton 从 UITable 中的选择中播放相应的音频剪辑?