如何计算Swift中userInteractionDisabled行的数量

时间:2015-08-29 17:59:36

标签: ios swift swift2

我有一个动态行的tableview。在某些情况下,我正在重新加载didSelect和didDeSelect方法中的数据,我正在使用userInteractionEnable作为false。如何计算最终的no.of.disabled(灰色)单元格?请帮忙。

1 个答案:

答案 0 :(得分:2)

根据你试图存储细节的方式,你真的不能,因为细胞被重复使用,我猜测有更多行而不是可见细胞。

您需要做的是更新模型的indexPath中的禁用/启用标志,然后从该模型数据中获取计数。

<强>更新

每一行都有自己的旗帜。您将这些标志存储在模型中的数组中。

我假设行最初已启用,因此您需要确保模型将每行的isDisabled标志设置为NO。

您要跟踪的是已禁用的行数。

代码中的某个位置,可能在tableView:cellForRowAtIndexPath:tableView:didSelectRowAtIndexPath:中,您正在检查行的状况,并根据该条件设置其isDisabled标记。

    modelData[indexPath.row].disabled = YES;

当您需要获取已禁用行的计数时,您将遍历模型并添加已禁用的行数:

NSUInteger numberOfDisabledRows = 0;
for (SomeModelClass *row in modelData) {
    if ([row isDisabled]) {
        numberOfDisabledRows++;
    }
}
NSLog(@"%ld disabled rows", (long)numberOfDisabledRows);