我正在使用UITableView,设置编辑为true,并在界面构建器中使用这些选项:
这显示了一个很好的选择UI,我可以修改它的样式和我可以做出反应的事件:
我想关掉它,但只针对某些细胞。我已经看过this和许多类似的问题,但它们在UITableView中引用了不同类型的选择。 UITableViewCellSelectionStyle.None
和willSelectRowAtIndexPath
不允许我阻止此类选择。
答案 0 :(得分:1)
您是否尝试实施
func tableView(_ tableView:UITableView, canEditRowAtIndexPath indexPath:NSIndexPath) - >布尔
在您的代表中?
我相信它可以让你获得你想要达到的结果。
答案 1 :(得分:0)
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
if(indexPath.row == index of cell you don't want the selection for)
{
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
cell.textLabel.text = [a objectAtIndex:indexPath.row];
return cell;
}
例如:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSArray *a = @[@"md",@"dh",@"kkd",@"dkkls"];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
if(indexPath.row == 2)
{
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
cell.textLabel.text = [a objectAtIndex:indexPath.row];
return cell;
}
它不会在你的tableview中显示“kkd”的选择