美文网首页
swift 自定义View里子控件位置超出父控件,响应点击事件办

swift 自定义View里子控件位置超出父控件,响应点击事件办

作者: 塞北孤雁 | 来源:发表于2020-06-12 15:52 被阅读0次
    //超出部分响应点击事件
    override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
        if (!self.isUserInteractionEnabled || self.isHidden || self.alpha <= 0.01 ){
            return nil
        }
        let resultView  = super.hitTest(point, with: event)
        if resultView != nil {
            return resultView
        }else{
            for subView in self.subviews.reversed() {
                // 这里根据层级的不同,需要遍历的次数可能不同,看需求来写,我写的例子是一层的
                let convertPoint : CGPoint = subView.convert(point, from: self)
                let hitView = subView.hitTest(convertPoint, with: event)
                if (hitView != nil) {
                    return hitView
                }
            }
        }
        return nil
    }
    ```

相关文章

网友评论

      本文标题:swift 自定义View里子控件位置超出父控件,响应点击事件办

      本文链接:https://www.haomeiwen.com/subject/toxntktx.html