0

ユーザーが画像の境界をタッチして選択できるシンプルな写真トリミングユーティリティを構築しようとしています。画像の正確なタッチ座標が必要です。

私が使うとき

    CGImageRef imageRef = [staticBG.image CGImage];
    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView:[self view]];
    y3=location.y;
    x3=location.x;

座標 (x3,y3) は絶対スケールであり、imageRef の処理には役立ちません。

使ってみた

    UITouch *touch = [touches anyObject];
    CGPoint touchPoint = [touch locationInView:staticBG];

しかし、それでも座標は完全には一致しません。

助けてください。

4

2 に答える 2

2

次のコードを使用してください:)

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

        UITouch *touch = [touches anyObject];

        if ([touch tapCount] == 2) {
            //self.imageView.image = nil;
            return;
        }

        CGPoint lastPoint = [touch locationInView:self.YourImageView];
        NSLog(@"%f",lastPoint.x);
        NSLog(@"%f",lastPoint.y);

    }
于 2013-02-06T08:32:31.163 に答える
0

ユーザーのタッチからの正確な座標は必要ないと思いますが、画像をトリミングするには、次のようにします。

  1. 画像上に maskView をレイアウトして、ユーザーがトリミングする領域を選択できるようにします。maskView には、簡単に認識できる正確なフレームがあります。
  2. touchesBeganと を使用してユーザーのタッチを検出しますtouchesMoved。ユーザーのタッチが移動している間に、maskView も移動します (maskView のフレームを変更します)。このステップでは、maskView のどの頂点がPointユーザーがタッチしたものに最も近いかを決定する必要があります (leftTop、rightTop、leftBottom、または rightBottom)。
  3. では、 maskViewtouchesEndedのフレームを使用して画像をトリミングします。ここでは、座標は十分に正確です。画像の座標系の maskView のフレームを変更する必要があることに注意してください。

希望が役立ちます。:)

于 2013-02-06T09:14:38.360 に答える