gpt4 book ai didi

ios - 第一次单击时快速动画按钮会跳跃

转载 作者:行者123 更新时间:2023-11-30 11:37:49 25 4
gpt4 key购买 nike

我在一些按钮上有一些动画,当它们被触碰时,它们会收缩并在释放时又会变长。

我面临的问题是,当加载 View 并且第一次触摸按钮时,它们会发生跳跃(如下图所示)。再次单击时,它们的行为符合预期。

enter image description here

请注意,旋转的 HOLD 圆圈不是按钮,而是叠加的 ImageView ,这证实了按钮仅在此处存在问题。另请注意,只要问题未解决,向 walletViewController 的转换也不会发生,并且会被停用。

@IBAction func buttonTapped(_ sender: UIButton) {
UIView.animate(withDuration: 0.15) {
self.badgeButton.transform = CGAffineTransform(scaleX: 0.95, y: 0.95)
self.holdAnimateBadge.transform = CGAffineTransform(scaleX: 0.95, y: 0.95)
}
UIView.animate(withDuration:0.15) {
let imageView = self.holdAnimateBadge
imageView?.alpha = 0.5
}
}

@IBAction func buttonToWallet(_ sender: Any) {
UIView.animate(withDuration: 0.20) {
self.badgeButton.transform = CGAffineTransform(scaleX: 1.5, y: 1.5)
self.badgeButton.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
self.holdAnimateBadge.transform = CGAffineTransform(scaleX: 1.5, y: 1.5)
self.holdAnimateBadge.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
}
UIView.animate(withDuration:0.20) {
let imageView = self.holdAnimateBadge
imageView?.alpha = 1
}
if badgeButton.image(for: UIControlState.normal) == UIImage(named: "SellImage") {
let walletViewController = self.storyboard?.instantiateViewController(withIdentifier: "walletViewController")
self.navigationController?.pushViewController(walletViewController!, animated: true)
} else if badgeButton.image(for: UIControlState.normal) == UIImage(named: "BuyImage") {
let walletViewController = self.storyboard?.instantiateViewController(withIdentifier: "walletViewController")
self.navigationController?.pushViewController(walletViewController!, animated: true)
} else {
return
}
}

问题似乎与此 CGAffineTransform(scaleX: 1.5, y: 1.5) 动画以及两个操作同时调用的事实有关,但我不知道为什么会发生这种情况首次单击时和首次加载 View 时。

最佳答案

问题之一如下:当您像这样制作动画时:

UIView.animate(withDuration: 0.20) {
self.badgeButton.transform = CGAffineTransform(scaleX: 1.5, y: 1.5)
self.badgeButton.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
}

您更改变换矩阵两次,因此第二次分配将覆盖第一次分配。因此第一个转换将被忽略。

因此,我认为您必须看看animateKeyframesWithDuration,它允许您添加多个动画(例如缩小并立即再次缩小)。

关于ios - 第一次单击时快速动画按钮会跳跃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49554361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com