0

私はUIViewを持っていて、CoreGraphicsを使用して幾何学的図形の描画を行いました。この幾何学的図形は、UIViewのサブビューとして追加されます。UIPanGestureRecognizerを使用して図面を移動するつもりです。UIViewを押したまま、デザインだけを移動することは可能ですか?

4

3 に答える 3

1

このコードを書いてください。

UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panPiece:)];
    [panRecognizer setMinimumNumberOfTouches:1];
    [panRecognizer setMaximumNumberOfTouches:1];

    [panRecognizer setDelegate:self];
    [yourSubview addGestureRecognizer:panRecognizer];



- (void)panPiece:(UIPanGestureRecognizer *)gestureRecognizer
{
    UIView *piece = [gestureRecognizer view];



    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged) {
        CGPoint translation = [gestureRecognizer translationInView:[piece superview]];

        [piece setCenter:CGPointMake([piece center].x + translation.x, [piece center].y + translation.y)];
        [gestureRecognizer setTranslation:CGPointZero inView:[piece superview]];

    }

}

上記のメソッドでコードを実装します。それはあなたに役立ちます。

于 2012-05-24T13:16:21.473 に答える
0

図面ビューがである場合は、次のようUIViewに、いつでもを追加しUIPanGestureRecognizerて移動できます。

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(drawingMoved:)];    
[_drawingView addGestureRecognizer:pan];
[pan release];

次のように動きを処理します。

- (void)drawingMoved:(UIGestureRecognizer *)sender
{
    NSUInteger numOfTouch = [sender numberOfTouches];
    if (numOfTouch==1) {
        CGPoint point = [sender locationInView:_parentView];
        UIView *drawingView = sender.view;
        drawingView.center = point;
    }    
}
于 2012-05-24T13:01:43.640 に答える
0

移動するオブジェクトをフィルタリングするためのif条件を記述できます。このリンクで私の投稿を参照してくださいここをクリックしてください:-

ありがとう!

于 2012-05-24T13:33:01.973 に答える