3

長押しジェスチャを実行して画像を削除しようとしています...問題は、同じビューに複数の画像がある可能性があることです。また、画像を長押しして各画像を削除することもできます。

だから私が持っているとしましょう:

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

すべて同じビューで。次に、Image1 を長押しします。Image1 を選択したことを Longpress ジェスチャに知らせるにはどうすればよいですか??

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

ありがとう!!!

4

2 に答える 2

2

UIGestureRecognizerDelegatein .h ファイルを指定してから、このコードを試してください ...

    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];
    }
于 2012-11-02T05:04:43.060 に答える
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
}
于 2012-11-02T00:54:57.547 に答える