不要删除 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 行号从大到小反转(...5,4,3,2,1)