我想以编程方式移动并扩展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。