动画视图放大弹跳?

问题描述

| 有没有一种方法可以对视图进行动画处理,使其放大并有点过分,使橡皮筋恢复到最终大小?我不确定如何制作这种动画。     

解决方法

要触发此动画时,请编写此代码
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;                            
        }];
    }];
}];
    ,太多复杂的答案

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...