首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在多个UIViews或UIImageViews上使用UIGestureRecognizers进行轻拍、收缩和旋转

如何在多个UIViews或UIImageViews上使用UIGestureRecognizers进行轻拍、收缩和旋转
EN

Stack Overflow用户
提问于 2013-05-13 20:54:56
回答 2查看 1.4K关注 0票数 0

我不知道该如何处理:-/

我只需要在图像上添加贴纸。应用程序将包含像笑脸,心(图像)选择特定的贴纸,它将被添加到主图像和用户可以操纵贴纸,如他旋转,缩放等,用户可以选择多个贴纸,可以做旋转缩放等添加的贴纸,

请指导如何实现这一点,我能够执行图像处理与单个贴纸我不知道如何执行多个贴纸选择,用户可以再次返回到任何贴纸上进行操作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-13 21:14:24

您可以使用此方法添加手势:

代码语言:javascript
复制
- (void) addGestureRecognizers{
    UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)];
    [panRecognizer setMinimumNumberOfTouches:1];
    [panRecognizer setMaximumNumberOfTouches:1];
    [self addGestureRecognizer:panRecognizer];

    UIRotationGestureRecognizer *rotateRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotate:)];
    self.multipleTouchEnabled = YES;
    [self addGestureRecognizer:rotateRecognizer];

    UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];
    [self addGestureRecognizer:pinchRecognizer];

    UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressed:)];
    longPressRecognizer.minimumPressDuration = 2.0;
    [self addGestureRecognizer:longPressRecognizer];
}

并实现这些选择器:

代码语言:javascript
复制
- (void) move:(UIPanGestureRecognizer *)recognizer{
    CGPoint translation = [recognizer translationInView:self.superview];
    recognizer.view.center = CGPointMake(recognizer.view.center.x+translation.x, recognizer.view.center.y+translation.y);
    [recognizer setTranslation:CGPointMake(0, 0) inView:self.superview];
}

- (void) rotate:(UIRotationGestureRecognizer *)recognizer{
    NSLog(@"Rotate");
    recognizer.view.transform = CGAffineTransformRotate(
                                                        recognizer.view.transform,
                                                        recognizer.rotation);
    recognizer.rotation = 0;
}

- (void) pinch:(UIPinchGestureRecognizer *)recognizer{
    recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
    recognizer.scale = 1; 
}

- (void) longPressed:(UILongPressGestureRecognizer *)recognizer{
    NSLog(@"Long Pressed");
}

注释:根据需要更改值

票数 5
EN

Stack Overflow用户

发布于 2013-05-13 21:07:32

我希望当你点击特定的图像时,你会将手势添加到图像视图中,你想在该特定的图像上执行一些操作,然后尝试这样做可能会对你有所帮助

代码语言:javascript
复制
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];

..。

代码语言:javascript
复制
- (void)imageTapped:(UITapGestureRecognizer *)sender
{
    UIView *selectedView = sender.view; 
    //perform action here

    or

  sender.view.frame=newFrame;//you can set your frame
}

添加这个用于同步手势识别。

代码语言:javascript
复制
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES:
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16522591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档