UIGestureRecognizer删除应用了LongPress的特定UIImageView

时间:2014-12-02 10:35:27

标签: ios uiimageview uigesturerecognizer

我正在开发一个应用程序,您可以在其中将不同的图像从图库添加到视图中,您可以拖动它们,如果您长按图像,则应将其删除。新导入的图像放在CGRect中,然后将drag和longpress的功能应用于它。

我的问题来自我的删除代码,删除工作正常但只删除最后插入的图像。

self.myImageView = [[Draggable alloc]initWithFrame:cellRectangle];
[self.myImageView setImage:self.myImage];
[self.myImageView setUserInteractionEnabled:YES];
[self.myImageView setTranslatesAutoresizingMaskIntoConstraints:YES];
[self.myImageView setPreservesSuperviewLayoutMargins:YES];

[self.customCam addSubview:self.myImageView];

此代码将可拖动类分配给UIImageView,后者用于在屏幕上拖动图像。以下是长按手势代码:

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(activateDeletionMode:)];
    longPress.delegate = self;
    longPress.minimumPressDuration = 1.0;
    [self.myImageView addGestureRecognizer:longPress];

activateDeletionMode代码位于

之下
- (void)activateDeletionMode:(UILongPressGestureRecognizer *)sender
{
        if (sender.state == UIGestureRecognizerStateBegan)
        {
            [self.myImageView removeFromSuperview];
            NSLog(@"This Runs");
        }
}

只插入一个图像就可以了。但是,如果我同时插入2张图像,则删除最新插入的图像,并且没有在第二张图像上执行removeFromSuperview

1 个答案:

答案 0 :(得分:0)

您应该为每个imageView添加一个新的长按手势。