ios-缩放和旋转蒙版UIImageView

我是iOS新手,需要具备以下需求。 请给我一些指导如何做到这一点。 谢谢!

  • 有一个图像(源)被另一个图像(帧)
  • 用户可以拖动,缩放,旋转源图像。 帧图像保持不变。

我知道如何使用CGImageCreateWithMask以及如何把uiimageview放在一个滚动视图中捏放大。 但我不知道如何将这些结合在一起,并进行自定义控制。

理想的结果

要旋转图像,您可以使用UIPanGestureRecognizer并放大/缩小,您可以使用UIPinchGestureRecognizer。 可能是下面的代码可以帮助你。

// In your vieDidLoad use: UIPanGestureRecognizer *pan=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panned:)]; UIPinchGestureRecognizer *pinch=[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinched:)]; [self.imageview addGestureRecognizer:pinch]; [self.imageview addGestureRecognizer:pan]; and add the selector methods: // To zoom in/out - (void)pinched:(UIPinchGestureRecognizer *)sender { if (sender.scale >1.0f && sender.scale < 2.5f) { CGAffineTransform transform = CGAffineTransformMakeScale(sender.scale, sender.scale); imageview.transform = transform; } } //To rotate -(void) panned:(UIGestureRecognizer *)gesture { CGPoint translatedPoint = [(UIPanGestureRecognizer*)gesture translationInView:imageview]; if([(UIPanGestureRecognizer*)gesture state] == UIGestureRecognizerStateBegan) { _firstX = [imageview center].x; _firstY = [imageview center].y; } translatedPoint = CGPointMake(_firstX+translatedPoint.x, _firstY+translatedPoint.y); [imageview setCenter:translatedPoint]; } 

在你的viewDidLoad你也应该添加你的框架作为subview的imageview。

您也可以将框架图像放到执行缩放的scrollView上作为子视图。 这样,两个图像应该放大在一起。