ios-缩放并旋转蒙版的UIImageView [英] ios- zoom and rotate a masked UIImageView

查看:152
本文介绍了ios-缩放并旋转蒙版的UIImageView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是iOS的新手,需要满足以下需求.请给我一些有关如何执行此操作的指示.谢谢!

I'm new to iOS and need to have the needs below. Please give me some directions on how to do this. Thanks!

  • 具有被另一个图像(框架)遮盖的图像(源)
  • 用户可以拖动,缩放,旋转源图像.框架图像保持静止.

我知道如何使用CGImageCreateWithMask以及如何将uiimageview放在scrollview中以进行缩放.但是我不知道如何将它们组合在一起并创建自定义控件.

I know how to use CGImageCreateWithMask and how to put uiimageview inside a scrollview for pinch to zoom. But I don't know how to combine these together and make a custom control.

推荐答案

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

To rotate an image you can use UIPanGestureRecognizer and to zoom in/out you can use UIPinchGestureRecognizer. May be the code below could help you.

// 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中,还应将框架作为子视图添加到imageview.

in your viewDidLoad your should also add your frame as as subview to the imageview.

这篇关于ios-缩放并旋转蒙版的UIImageView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆