2012-05-24 90 views
0

我有一個UIView,並使用CoreGraphics繪製了一個幾何圖形。這個幾何圖形被添加爲UIView的子視圖。 我打算使用UIPanGestureRecognizer來移動繪圖。是否可以保持UIView並移動設計?保持UIView並只移動子視圖

回答

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

    } 

} 

在上述方法中實現您的代碼。這對你有幫助。

0

如果過濾移動物體的條件可以編寫。 看到我的帖子在這個鏈接click here: -

謝謝!