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. touchesEnded,我们使用 maskView 的 frame 来裁剪图像。在这里,坐标足够精确。请注意,我们需要更改图像坐标系的 maskView 框架。

希望有所帮助。:)

于 2013-02-06T09:14:38.360 回答