【问题标题】:Enable UITableView edit only in a specified section仅在指定部分启用 UITableView 编辑
【发布时间】:2023-04-08 23:19:01
【问题描述】:

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

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

【问题讨论】:

    标签: ios objective-c xcode uitableview


    【解决方案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; ;-)
    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2010-10-09
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多