使用UIGestures来删除选定的UIImage?

3

我正在尝试通过长按手势来删除一张图片...

问题在于,同一个视图上可能有多张图片。而且我可能想通过长按每个图片来删除它们。

假设我有以下这些图片:

 @property (nonatomic, retain) IBOutlet UIImageView *Image1;
 @property (nonatomic, retain) IBOutlet UIImageView *Image2;
 @property (nonatomic, retain) IBOutlet UIImageView *Image3;

所有内容都在同一个视图中。 现在我按住 Image1。 如何让长按手势知道我已经选择了 Image1?

- (void)handleDelete:(UILongPressGestureRecognizer *)recognizer {
   //Something in here to detect image is selected and delete :)
 }

感谢!!!
2个回答

2

在.h文件中提供UIGestureRecognizerDelegate,然后尝试以下代码...

    UILongPressGestureRecognizer *longpressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressHandler:)];
    longpressGesture.minimumPressDuration = 5;
    [longpressGesture setDelegate:self];
    [self.yourImages addGestureRecognizer:longpressGesture];
    [longpressGesture release];

    - (void)longPressHandler:(UILongPressGestureRecognizer *)gestureRecognizer {
        NSLog(@"longPressHandler");
        UIImageView *tempImage=(UIImageView*)[gestureRecognizer view];
        [tempImage removeFromSuperview];
    }

1
UILongPressGestureRecognizer添加到各个图像中,当检测到手势时,移除它们,如下所示:
UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressDetected:)];
longPressRecognizer.minimumPressDuration = 3;
longPressRecognizer.numberOfTouchesRequired = 1;
[self.Image1 addGestureRecognizer:longPressRecognizer];
[self.Image2 addGestureRecognizer:longPressRecognizer];
[self.Image3 addGestureRecognizer:longPressRecognizer];

- (IBAction)longPressDetected:(UILongPressGestureRecognizer *)sender {
    NSLog(@"Long Press");
    // Delete/Remove sender object
}

谢谢!我现在唯一的问题是... 如何删除image1等。 像这样吗? [if (image1 == longPressRecognizer){ image1.alpha=0; }类似这样? - f00d
[image1 removeFromSuperview] 怎么样? - user427969
啊,说得有道理... 不过有趣的是 image1 == longPressRecognizer.. 我一直得到longpressrecognizer未声明的错误.. 这没有意义。 它是通过UILongPressGestureRecognizer *longPressRecognizer声明的。 - f00d
我认为根据我的代码应该是(sender == image1)。另外,在longPressDetected:方法中尝试使用[sender removeFromSuperview] - user427969
嗯..使用sender==image1等语句时,我得到了“不同指针类型的比较(UILongPressGestureRecognizer和UIImageView*)”的错误提示。 - f00d
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接