问题描述
|
有没有一种方法可以对视图进行动画处理,使其放大并有点过分,使橡皮筋恢复到最终大小?我不确定如何制作这种动画。
解决方法
要触发此动画时,请编写此代码
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;
}];
}];
}];
,太多复杂的答案