我制作了一个自定义按钮,通过增长动画,然后不断恢复到原始状态(比例变化)。像这样:
class PulseButton: UIButton {
private func setup() {
_ = Timer.scheduledTimer(timeInterval: 1.6, target: self, selector: #selector(self.animateButton), userInfo: nil, repeats: true)
}
func grow() {
UIView.animate(withDuration: 0.8) {
self.transform = CGAffineTransform(scaleX: 2.5, y: 2.5)
self.layoutIfNeeded()
}
}
func shrink() {
UIView.animate(withDuration: 0.8) {
self.transform = CGAffineTransform(scaleX: 1, y: 1)
self.layoutIfNeeded()
}
}
@objc func animateButton() {
grow()
shrink()
}
}
我的问题是按钮触摸事件在处于增长状态时不起作用,只有当它恢复到正常状态时(scaleX = 1,1)。
有没有办法让它在两个州都可以触摸?