2011-09-16 9 views
0

ピンチジェスチャーレコグナイザーを追加すると画像が1つしかありませんが、ピンチアウトを水平にすると画像ビューの幅を増やす必要があります。垂直にすると高さを上げる必要があります。 ?私は次のようにコード化しましたが、私は垂直にピンチアウトするとき、高さだけ増加しなければなりません。しかし、ビューは消えています。iphone sdkのピンチアウトでのみ高さを上げるには?

- (id)initWithFrame:(CGRect)frame { 

self = [super initWithFrame:frame]; 
if (self) { 
    // Initialization code. 
} 

UIPinchGestureRecognizer *panGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)]; 
[self addGestureRecognizer:panGestureRecognizer]; 
[panGestureRecognizer release]; 

return self; 


} 

    -(void) handlePinch:(UIPinchGestureRecognizer *)gesture 
    { 

UIPinchGestureRecognizer *pinchGesture = (UIPinchGestureRecognizer *) gesture; 




if ([pinchGesture state] == UIGestureRecognizerStateBegan){ 

    lastTouchPosition = [pinchGesture locationInView:self]; 

} else if ([gesture state] == UIGestureRecognizerStateBegan || [pinchGesture state] == UIGestureRecognizerStateChanged){ 

    CGPoint currentTouchLocation = [pinchGesture locationInView:self]; 
    CGPoint deltaMove =[self CGPointDistance:currentTouchLocation p2:lastTouchPosition]; 
    float distance = sqrt(deltaMove.x*deltaMove.x + deltaMove.y*deltaMove.y); 
    float hScale = 1 - abs(deltaMove.x)/distance * (1-pinchGesture.scale); 
    float vScale = 1 - abs(deltaMove.y)/distance * (1-pinchGesture.scale); 
    self.transform = CGAffineTransformScale([self transform], hScale, vScale); 

    lastTouchPosition = currentTouchLocation; 
} 

答えて

1

これを参照してくださいthreadを参照してください。基本的には、アフィン変換には異なる値を使用する必要があります。

+0

ご使用のコードで質問を編集し、正確に何が起こったのかを指定してください。 – Viraj

+0

こんにちは、plsは私のコードを見て、私のせいを修正しますか? – nameless

関連する問題