如何通过触摸添加一个图像

时间:2012-08-01 02:48:51

标签: objective-c cocoa-touch uiimageview uiimage touchesbegan

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

如何修改我的代码以允许此操作?

 -(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];

  }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

为:

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

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

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