0

我有一个自定义 imagePickerControl

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

4

1 回答 1

0

基本理念:

  1. 使用选定的图像创建一个新的 temp-ImageView。
  2. 将此添加到窗口中原始 ImageView 的确切位置。
  3. 删除 original-ImageView (如果你愿意的话)
  4. 将 temp-ImageView 移动/缩放到屏幕上所需的位置。
  5. 将 final-ImageView 添加到蓝色区域中的所需位置。
  6. 删除 temp-ImageView。

您将不得不使用 - (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view 进行一些计算不确定,但选择器可能位于与蓝色区域不同的窗口中。

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];
于 2012-04-28T08:55:02.747 回答