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。
这两个链接将帮助你100%。
http://code4app.net/ios/scale-an-image-by-pinch/507e21c36803fa4667000000
http://code4app.net/ios/Image-Cropper/4f8cc87f06f6e7d86c000000
您也可以将框架图像放到执行缩放的scrollView上作为子视图。 这样,两个图像应该放大在一起。