如何解决动画视图放大弹跳?
| 有没有一种方法可以对视图进行动画处理,使其放大并有点过分,使橡皮筋恢复到最终大小?我不确定如何制作这种动画。解决方法
要触发此动画时,请编写此代码
popUp.transform = CGAffineTransformScale(CGAffineTransformIdentity,0.001,0.001);
[self.view addSubview:popUp];
[UIView animateWithDuration:0.3/1.5 animations:^{
popUp.transform = CGAffineTransformScale(CGAffineTransformIdentity,1.1,1.1);
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.3/2 animations:^{
popUp.transform = CGAffineTransformScale(CGAffineTransformIdentity,0.9,0.9);
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.3/2 animations:^{
popUp.transform = CGAffineTransformIdentity;
}];
}];
}];
SWIFT 5.0
selectView.transform =
CGAffineTransform.identity.scaledBy(x: 0.001,y: 0.001)
view.addSubview(selectView)
UIView.animate(withDuration: 0.3 / 1.5,animations: {
selectView.transform =
CGAffineTransform.identity.scaledBy(x: 1.1,y: 1.1)
}) { finished in
UIView.animate(withDuration: 0.3 / 2,animations: {
selectView.transform = .identity.scaledBy(x: 0.9,y: 0.9)
}) { finished in
UIView.animate(withDuration: 0.3 / 2,animations: {
selectView.transform = CGAffineTransform.identity
})
}
}
这是已更新的代码(来自fabio.cionini),因为已被接受,因此已更新为最新代码。
,刚由Amit Singh使用块重构了代码,这使得代码更加简单易读。
popUp.transform = CGAffineTransformScale(CGAffineTransformIdentity,0.9);
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.3/2 animations:^{
popUp.transform = CGAffineTransformIdentity;
}];
}];
}];
,太多复杂的答案版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。