获取UIView帧的缩放动画

dam*_*i86 3 iphone uianimation ipad ios

我试图添加一个UIView与过渡样式缩放动画,如下所示:

     ^
     |
 <---.--->
     |
     v
Run Code Online (Sandbox Code Playgroud)

视图以一个小框架(centerParent.x,centerParent.y,20,20)开始,然后更改为(centerParent.x,centerParent.y,300,300).

但是当我改变框架时,我必须改变它,因为视图的位置(0.0),而不是它的中心点.有谁知道怎么做?

谢谢

Aar*_*man 7

使用您当前使用的方法(不使用变换而只是调整视图大小),您只需要重置视图的原点或中心).最简单的是中心:

 view.frame = CGRectMake(0, 0, 20, 20);
    CGPoint center = view.center;
    [UIView animateWithDuration: 1.0f animations:^{
        view.frame = CGRectMake(0, 0, 300, 300);
        view.center = center;
    }];
Run Code Online (Sandbox Code Playgroud)

您还可以通过从x和y减去1/2大小变化的差异来重置原点,但这是更多数学:

view.frame = CGRectMake(0, 0, 20, 20);
    CGPoint origin = view.frame.origin.
    [UIView animateWithDuration: 1.0f animations:^{
        origin.x -= (300 - 20) / 2;
        origin.y -= (300 - 20) / 2;
        view.frame = CGRectMake(origin.x, origin.y, 300, 300);
    }];
Run Code Online (Sandbox Code Playgroud)