2012-11-22 85 views
1

我有一個基本的UIImageView名爲「A」,它可以響應pinchGesture,我捏了它之前,我addsubview我重置框架,它看起來不錯。然後,我在基本的UIImageView「A」上添加了「ViewView」B,但是「B」具有「A」的變形,它很大(很小)。我已重置框架。爲什麼會發生這種情況。我怎樣才能讓B以原始幀顯示。在UIImageView層次結構上的手勢

- (void)scalePiece:(UIPinchGestureRecognizer *)gestureRecognizer 
{ 
    [self adjustAnchorPointForGestureRecognizer:gestureRecognizer]; 

    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged) { 
     [gestureRecognizer view].transform = CGAffineTransformScale([[gestureRecognizer view] transform], [gestureRecognizer scale], [gestureRecognizer scale]); 
     [gestureRecognizer setScale:1]; 
    } 
} 

- (void)adjustAnchorPointForGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer { 
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) { 
     UIView *piece = gestureRecognizer.view; 
     CGPoint locationInView = [gestureRecognizer locationInView:piece]; 
     CGPoint locationInSuperview = [gestureRecognizer locationInView:piece.superview]; 

     piece.layer.anchorPoint = CGPointMake(locationInView.x/piece.bounds.size.width, locationInView.y/piece.bounds.size.height); 
     piece.center = locationInSuperview; 
    } 
} 
+0

任何建議將會升值 – Eric

回答

0

如果您將轉換應用於UIView A,那麼該轉換將應用於其所有子視圖B。如果你不想B被A的變換所影響,你可以嘗試將B添加到A的超級視圖中。