美文网首页
ios给动画中的view添加点击事件

ios给动画中的view添加点击事件

作者: FinLaas | 来源:发表于2019-08-01 15:00 被阅读0次

    动画中的view,其frame不在肉眼所见的位置,所以需要其他方式接收点击事件。



    步骤1:将点击事件指向view

    使用layer的presentation方法,得到view在动画中的当前frame。
    重写hittest方法,检查当前frame是否包含点击位置。

        override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
            let localPoint = convert(point, to: self.superview)
            if self.layer.presentation()?.frame.contains(localPoint) == true {
                print("tap")
                return tapBtn
            } else {
                return super.hitTest(point, with: event)
            }
        }
    



    步骤2:让view接收事件

    由于实际frame不在当前位置,当判断点击是否在view范围内时,需要返回true。

    override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
            return true
        }
    

    这个方法仅用于touchUpInside事件,其他事件当实现欢迎大家提建议。

    相关文章

      网友评论

          本文标题:ios给动画中的view添加点击事件

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