调整UIView大小后,UITapGestureRecognizer不起作用

时间:2019-05-14 06:47:46

标签: ios swift uiview uitapgesturerecognizer

我想以编程方式移动并扩展UIView的大小,然后,如果再次点按UIView,请将其重新设置为原始大小和位置。

我可以使UIView展开并在第一次点击时移动。但是,在该初始动画之后根本不会注册拍子。

let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap(sender:)))

myView.heightAnchor.constraint(equalToConstant: 50).isActive = true
myView.widthAnchor.constraint(equalToConstant: 50).isActive  = true
myView.isUserInteractionEnabled = true
myView.addGestureRecognizer(tapRecognizer)

下面是我的函数,该函数由handleTap调用以在第一次点击时执行初始动画。运行正常。我平移myView的位置,然后更改框架大小以使其更大。

fileprivate func expandView(_ sender: UITapGestureRecognizer) {
    UIView.animate(withDuration: 0.5, animations: {
        let translate = CGAffineTransform(translationX: 100, y: 50 )
        sender.view?.transform = translate
        sender.view?.backgroundColor = .green

    })  { (_) in

        UIView.animate(withDuration: 0.5, animations: {
            // change frame size of view to make it bigger
            sender.view?.frame = CGRect(x: 100, y: 50, width: 100, height: 100)
        })
    }

}

我尝试注释掉更改帧大小的动画,仅保留XY平移。这也不允许在点击myView时再次触发handleTap。

0 个答案:

没有答案