仅在指定部分启用 UITableView 编辑

Posted

技术标签:

【中文标题】仅在指定部分启用 UITableView 编辑【英文标题】:Enable UITableView edit only in a specified section 【发布时间】:2013-04-11 20:21:14 【问题描述】:

我有一个包含 4 个部分的 tableView。我想仅在第四部分中启用编辑(移动/拖动/重新排列)单元格。当我设置:tableView.editing = YES 我让所有表格视图都处于编辑模式。这个How to limit UITableView row reordering to a section 帮助了我,因为我现在可以仅在其“根”部分内重新排列部分中的单元格。

我的意思是,如果单元格位于第一部分,那么我只能在第一部分中重新排列,而不是其他部分。我的目标是仅使用第 4 节启用编辑,因此仅将第 4 节中的单元格置于移动/拖动模式。有谁知道我该怎么做?

【问题讨论】:

【参考方案1】:

你可以通过实现这个委托方法来实现这一点

-(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath 
    if (indexPath.section == 3) 
        return YES;
     else 
        return NO;
    

【讨论】:

短版:return indexPath.section == 3。 :) @tkanzakic 你知道我如何记录新的单元格排列吗? @tkanzakic 该排列将构造一个新数组,该数组将反映到按钮排列。例如cell: 1,2,3 将根据 1,2,3 将按钮排列在另一个视图中(按钮:a,b,c)。如果排列是 2,3,1,那么按钮将被排序:b,c,a.. 你可以为每个单元格分配一个你想要的数字标签然后使用它 最好使用枚举而不是幻数:typedef NS_ENUM(NSInteger, MyControllerSection) MyControllerSection1,... MyControllerSectionN, MyControllerSectionCount, ; 然后return indexPath.section == MyControllerSection3; ;-)

以上是关于仅在指定部分启用 UITableView 编辑的主要内容,如果未能解决你的问题,请参考以下文章

仅在编辑模式下的 UITableView 部分标题

编辑/删除部分的建议

部分的 UITableView 标题仅在向下滚动时出现

在 UITableView 中编辑 UITextField(启用/禁用输入)?

允许 UITableView 重新排序,但在编辑模式下不删除,并启用滑动删除

具有动态高度的 UITableView 和 UITableViewCell 仅在 WillDisplay 中知道