0

致力于通过触摸将图像添加到视图中。到目前为止,我的代码允许我在触摸屏幕时添加我想要多次选择的相同图像。我希望能够一次添加一个图像,以便我可以操作添加的图像(放大/缩小、旋转、移动)。

我应该如何修改我的代码以允许这样做?

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch * touch = [touches anyObject];
touchPoint = [touch locationInView:imageView];

  if (touchPoint.x > 0 && touchPoint.y > 0)
  {
    stampedImage = _imagePicker.selectedImage;   

    _stampedImageView = [[UIImageView alloc] initWithImage:stampedImage];
    _stampedImageView.multipleTouchEnabled = YES;
    _stampedImageView.userInteractionEnabled = YES;
    [_stampedImageView setFrame:CGRectMake(touchPoint.x, touchPoint.y, 80.0, 80.0)];
    _stampedImageView.center = touchPoint;
    [imageView addSubview:_stampedImageView];
    [_stampedImageView release];

  }
}

谢谢!

4

1 回答 1

0

如果我明白你想要什么,你需要继承 UIImageView 并在该子类中实现 touchesBegan (和/或手势识别器方法)。在您发布的代码中,您应该更改:

_stampedImageView = [[UIImageView alloc] initWithImage:stampedImage];

至:

_stampedImageView = [[CustomImageView alloc] initWithImage:stampedImage];

其中 CustomImageView 是您的 UIImageView 子类。如果您这样做,那么自定义视图中的任何触摸都将由该类中的代码处理,而不是包含视图。

如果您触摸子类 imageView 之外的某个地方,您仍然会再次添加相同的视图。如果你想抑制它,你必须添加一个属性来跟踪最后选择的图像,并放入一个 if 子句,如果它包含该图像,则不会添加图像视图。

于 2012-08-01T04:22:32.120 回答