0

我不知道如何处理:-/

我只需要在图像上添加贴纸。应用程序将在选择特定贴纸时包含表情符号,心形(图像)等贴纸,它将添加到主图像中,用户可以使用贴纸进行操作,如旋转、缩放等,用户可以选择多个贴纸并可以添加旋转缩放等贴纸,

请指导如何实现这一点,我可以使用单个贴纸执行图像处理我不知道如何为多个贴纸选择执行它,用户可以再次返回任何贴纸并对其执行操作。

4

2 回答 2

5

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

- (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];
}

并实现这些选择器:

- (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");
}

注意:根据需要更改值

于 2013-05-13T13:14:24.033 回答
0

i'm expecting you are adding gestures to image view when you click on particuler image you want to perform some action on that particuler image right ,then try like this may be it'l helps you

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];

...

- (void)imageTapped:(UITapGestureRecognizer *)sender
{
    UIView *selectedView = sender.view; 
    //perform action here

    or

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

add this one for Simultaneous gesture recognization.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES:
}
于 2013-05-13T13:07:32.207 回答