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

特定の画像をクリックすると、その特定の画像に対して何らかのアクションを実行したいときに、画像ビューにジェスチャを追加することを期待しています。次に、このように試してみてください。

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
}

同時ジェスチャー認識のためにこれを追加します。

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