objective-c - iOS9 - UITableViewCellContentView 覆盖了 Cell 中的控件

标签 objective-c uitableview nib xcode7 ios9

我制作了一个名为“SwitchCell”的自定义 UITableViewCell,它有一个开关。 在 iOS9 Only 中,使用 Xcode 7 beta,单元格中的内容 View 位于开关的顶部。 (查看 View 层次结构的屏幕截图。您可以清楚地看到单元格的内容 View 位于其他 View 之上。): enter image description here

因此所有对 UISwitch 的触摸都被拦截,并且 IBAction 不会触发。 在 iOS8 中,这不是问题。请参阅 iOS 8.4 模拟器的屏幕截图。您可以看到控件顶部没有内容 View : enter image description here

有人遇到过这个问题吗? 我尝试从头开始重新制作 NIB,但出现了相同的结果。

我的 NIB 是一个自由尺寸的 View ,没有状态栏。它有两个导出:一个用于 UILabel,一个用于 UISwitch。

编辑:请确保检查下面要求验证单元格的 Root View 不仅是 UIView 还是 UITableViewCell 的答案。这个问题也可能是这个的副作用。

最佳答案

经过更多的调查和搜索,我在这里找到了我的解决方案: Button in UITableViewCell not responding under ios 7

为我修复的是:

cell.contentView.userInteractionEnabled = NO;

这可以防止单元格内容 View 接管触摸事件,即使它位于其他 View 之上也是如此。

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

关于objective-c - iOS9 - UITableViewCellContentView 覆盖了 Cell 中的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31681481/

相关文章:

iphone - 如何为从音乐库导入的音乐文件创建铃声

ios - Swift 中具有动态高度的 UITableView

uitableview - 了解自定义 UITableCellView 的创建——从 MonoTouch 中的 Nibs 加载

ios - 从 nib 创建的 UICollectionViewCell 中的奇怪 UIView

objective-c - 如何在2个iPad之间交换数据?

objective-c - GL_TRIANGLE_STRIP 和顶点数组出错

objective-c - 使用 NSString 作为搜索项来查找 NSArray 项目索引

ios - 当前单元格展开时折叠其他 UITableViewCell

objective-c - 按字母顺序自动分组 UITableView

cocoa - [NSWindowController initWithWindowNibName :owner]? 中窗口 Controller 以外的所有者