如何从弹出视图到后视图制作动画?

时间:2012-04-28 08:42:02

标签: ios animation

I have a customize imagePickerControl

当我选择一个图像时,我想要一个从拾取器到主视图(这是模糊区域)的动画,有人有个好主意吗?

1 个答案:

答案 0 :(得分:0)

基本理念:

  1. 使用所选图像创建新的temp-ImageView。
  2. 将其添加到原始ImageView的确切位置的窗口中。
  3. 删除original-ImageView(如果您愿意)
  4. 将temp-ImageView移动/缩放到屏幕上的所需位置。
  5. 将最终ImageView添加到蓝色区域中的所需位置。
  6. 删除temp-ImageView。
  7. 您必须使用 - (CGRect)convertRect:(CGRect)rect fromView:(UIView *)视图进行一些计算 不确定,但是Picker可能位于与蓝色区域不同的窗口中。

    CGRect destRect; // position in window, height/width need to be flipped, so the size is correct after rotation
    
    // add a ContainerView so rotation-handling is easier, esp. durring moving/scaling
    UIView *containerView = [[UIView alloc] initWithFrame:destRect];
    
    // set the frame of the imageView, origin 0/0 so rotation is easy to handle, height/width flipp back
    UIImageView *tempImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, destRect.size.height, destRect.size.width)];
    
    // flip layer center as well
    [tempImageView setCenter:CGPointMake(camView.center.y, camView.center.x)];
    
    // add the rotation 
    [tempImageView setTransform:CGAffineTransformMakeRotation(M_PI_2)];
    
    [tempImageView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];