iOS9 - UITableViewCellContentView掩盖了Cell内部的控件

Fra*_*ock 15 objective-c uitableview nib ios9 xcode7

我做了一个名为"SwitchCell"的自定义UITableViewCell,它有一个开关.仅在iOS9中,使用Xcode 7 beta,单元格中的内容视图位于交换机顶部.(请参阅视图层次结构的屏幕截图.您可以清楚地看到单元格的内容视图位于其他视图之上.): 在此输入图像描述

因此,UISwitch的所有触摸都被截获,IBAction也不会触发.在iOS8中,这不是问题.查看iOS 8.4模拟器的屏幕截图.您可以看到控件顶部没有内容视图: 在此输入图像描述

有谁有这个问题?我尝试从头开始重新构建NIB,但是会出现相同的结果.

我的NIB是一个自由格式的视图,没有状态栏.它有两个出口:一个用于UILabel,一个用于UISwitch.

编辑:请确保检查下面的答案,要求验证单元格的根视图不仅仅是一个UIView而是一个UITableViewCell.这个问题也可能是一个副作用.

Fra*_*ock 12

经过更多的调查和搜索,我在这里找到了我的解决方案: UITableViewCell中的按钮在ios 7下无响应

为我修复的是:cell.contentView.userInteractionEnabled = NO;

这可以防止单元格内容视图接管触摸事件,即使它位于其他视图之上.

这个问题不仅发生在iOS9上,也发生在iOS7上.在iOS8中,内容视图位于控件后面.

  • 它适用于iOS 9.1开发人员预览版.无论如何,它根本就没有意义,contentView是HIERARCHY的父级视图,不应该在其他视图之上. (3认同)