1

私はUIPinchGestureに取り組んでいます。毎回縮んで大きくなったときの画像の座標(x、y、width、height)を見つけたいです。私のコードは次のとおりです。

-(IBAction)handlePinchGesture:(UIGestureRecognizer *)送信者{

CGFloat factor = [(UIPinchGestureRecognizer *) sender scale];
CGPoint point = [sender locationInView:self.moveImageView];
NSLog(@"The Coordinate is:--->  x = %f y = %f", point.x, point.y);
if (factor > 1) {

moveImageView.transform = CGAffineTransformMakeScale(lastScaleFactor +(factor-1)、lastScaleFactor +(factor-1)); } else {moveImageView.transform = CGAffineTransformMakeScale(lastScaleFactor * factor、lastScaleFactor * factor);

                    }

if (sender.state == UIGestureRecognizerStateEnded){
    if (factor > 1) {
        lastScaleFactor += (factor-1);
    } else {
        lastScaleFactor *= factor;

        }       
    }   

}

moveImageViewはUIIMageViewのオブジェクトです。xとyの座標が印刷されますが、高さと幅も必要です。

これは問題なく機能します。画像を拡大縮小(縮小および拡大)した後、画像の現在の座標(x、y、幅、高さ)を見つけたいと思います。誰もが私をできるだけ早くplzするのを手伝ってくれます。

事前に感謝します:)

4

2 に答える 2

1

-(IBAction)handlePinchGesture:(UIGestureRecognizer *)送信者{

NSLog(@"image.frame.sizeWidth111 %f",moveImageView.frame.size.width);
NSLog(@"image.frame.sizeHeight111 %f",moveImageView.frame.size.height);

CGFloat factor = [(UIPinchGestureRecognizer *) sender scale];
CGPoint point = [sender locationInView:self.moveImageView];

NSLog(@"The Coordinate is:--->  x = %f y = %f", point.x, point.y);

//現在の係数が大きい場合1->ズームイン

if (factor > 1) {
                moveImageView.transform = CGAffineTransformMakeScale(lastScaleFactor + (factor-1),
                                                     lastScaleFactor + (factor-1));
                } else {
                    moveImageView.transform = CGAffineTransformMakeScale(lastScaleFactor * factor, 
                                                     lastScaleFactor * factor);

                    }

if (sender.state == UIGestureRecognizerStateEnded){
    if (factor > 1) {
        lastScaleFactor += (factor-1);
    } else {
        lastScaleFactor *= factor;

        }       
    }   
NSLog(@"image.frame.sizeWidth222 %f",moveImageView.frame.size.width);
NSLog(@"image.frame.sizeHeight222 %f",moveImageView.frame.size.height);

}

于 2011-08-09T05:22:00.983 に答える
0

UIImageViewアニメーション中でも正確な状態の正確な状態が必要な場合は、プレゼンテーション層にアクセスする必要があります。アニメーション中にモデルレイヤーが更新されないため。これはそのように行うことができます-

UIImageView *i    = (UIImageView *)sender;
CAlayer *imgLayer = [i.layer presentationLayer];

これimgLayerには正確な座標があります。必要です。サイズ(幅、高さ)を含みます。

于 2011-08-08T12:20:12.223 に答える