UITableViewCell 中的 UISwitch

Posted

技术标签:

【中文标题】UITableViewCell 中的 UISwitch【英文标题】:UISwitch in UITableViewCell 【发布时间】:2010-11-16 19:13:26 【问题描述】:

我在 UITableViewCells 中有一些 UISwitches。但是,此表由多个部分组成。向下滚动表格时,有时会使用不属于下划线部分的无效开关更新新创建的单元格。交换开关的顺序不是不可预测的,它只是随机地将开关添加到单元中。然而这是一个奇怪的情况。

这就是我所做的。

 if(indexPath.section == 1)
       switch (indexPath.row)  
        case 0:
         cell.textLabel.text = @"Text 1";
         switch1 = [[UISwitch alloc] initWithFrame:CGRectZero];
         cell.accessoryView = switch1;

         [cell.contentView  addSubview :switch1];

         break;
        case 1:
         cell.textLabel.text = @"Text 2";
         switch2 = [[UISwitch alloc] initWithFrame:CGRectZero];

         cell.accessoryView = switch2;
         [cell.contentView  addSubview :switch2];
         break;
        case 2:
........

More sections

......

那么这可能是什么问题?

谢谢。

【问题讨论】:

你明白了吗? 【参考方案1】:

如果您将表格单元出列以供重复使用(如您所愿),则可能会发生这种情况。如果某些表格单元格应该有某些子视图,而另一些则没有,那么您应该为不同的类型使用不同的重用标识符。因此,为具有 UISwitch 的表格单元格创建一个重用标识符,并为没有 UISwitch 的表格单元格创建一个单独的重用标识符。

【讨论】:

以上是关于UITableViewCell 中的 UISwitch的主要内容,如果未能解决你的问题,请参考以下文章

确定 UITableViewCell 中的 UIButton

UITableViewCell 事件中的 UIButton 不起作用

UITableViewCell 中的 UICollectionView

UITableVIewCell 中的 UIScrollView 不会滚动

UITableViewCell 中的 UITextField - UIButton

更改 UITableViewCell 中的删除附件视图