要使用相同的UIButton在不同的时间执行多个不同的动画,可以通过以下步骤实现:
以下是一个示例代码,演示如何使用相同的UIButton在不同的时间执行缩放和旋转动画:
import UIKit
class ViewController: UIViewController {
var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// 创建UIButton对象
button = UIButton(type: .system)
button.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
button.setTitle("Button", for: .normal)
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
view.addSubview(button)
}
@objc func buttonTapped() {
// 执行缩放动画
scaleAnimation()
// 延迟1秒后执行旋转动画
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
self.rotateAnimation()
}
}
func scaleAnimation() {
UIView.animate(withDuration: 0.5, animations: {
self.button.transform = CGAffineTransform(scaleX: 1.5, y: 1.5)
}) { (_) in
// 动画执行完毕后恢复初始状态
self.button.transform = CGAffineTransform.identity
}
}
func rotateAnimation() {
UIView.animate(withDuration: 0.5, animations: {
self.button.transform = CGAffineTransform(rotationAngle: CGFloat.pi)
}) { (_) in
// 动画执行完毕后恢复初始状态
self.button.transform = CGAffineTransform.identity
}
}
}
这个示例中,点击按钮后会先执行缩放动画,然后延迟1秒后执行旋转动画。每个动画函数中都使用了UIView的animate(withDuration:animations:completion:)方法来实现动画效果。在动画执行完毕后,通过修改按钮的transform属性将按钮恢复到初始状态。
这只是一个简单的示例,实际应用中可以根据需求定义更多的动画函数,并在不同的时间点调用它们来实现更复杂的动画效果。
领取专属 10元无门槛券
手把手带您无忧上云