ios - 防止在 UITableViewCell 的 subview 上进行交互

标签 ios swift cocoa-touch

我有一个很大的 UITableViewCell,里面有 2 个自定义 UIView。其中之一应允许交互(选择和取消选择),而其中一个 View 不应允许交互。

我知道我可以在整个单元格或每个 subview 上启用或禁用交互,但如果我在 UIView 上禁用交互,单元格仍会被选中或取消选中。

有没有办法,例如,允许触摸单元格的上半部分而不是底部?

这是我描述的 UITableViewCell 的截图

enter image description here

最佳答案

您可以通过 HitTest 转发或取消触摸

override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {
        if let hitView = super.hitTest(point, withEvent: event) {
            if hitView.isKindOfClass(CustomSubviewClass) {
                return nil
            } else {
                return hitView
            }
        } else {
            return nil
        }
    }

关于ios - 防止在 UITableViewCell 的 subview 上进行交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38276404/

相关文章:

ios - UITextField 在 UIButton 触摸时退出第一响应者

ios - iOS团队开发中如何管理共享资源?

objective-c - 在其他对象内的容器中添加对象对于 arc 为 null

ios - UICollectionView 自动调整单元格大小

ios - swift2 中的委托(delegate)错误

ios - 动态改变API数据获取结构

swift - 以编程方式 UISlider 不改变宽度

iphone - UIViewController -viewDidLoad 未被调用

ios 在 iPhone 4s 和 iPhone 5 上使用不同的图像

objective-c - 代表用户格式化输入的时间字符串