0

私は次のコードを使用しています

@property (retain, nonatmoic) UIImageView *imgView;

  if ( count == 6)
    {
        [timer invalidate]; 
         imgView= [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,460)];

        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        {
            imgView.image = [UIImage imageNamed:@"ipad_popover-incorrectguess.png"];
            [self.view addSubview:imgView];

        }
        else if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
        {
            imgView.image = [UIImage imageNamed:@"iphone_popover-incorrectguess.png"];
            [self.view addSubview:imgView];        
        }
        UIGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                                    initWithTarget:self action:@selector(newRound)];
        [imgView addGestureRecognizer:tap];
    }
}

-(void)newRound
{
    [imgView removeFromSuperview];
}

画像のどこかをタップすると、newROUNDが呼び出されないようです。

どうすれば修正できますか?

4

3 に答える 3

2

imgViewのユーザーインタラクションを有効にする必要があります。

imgView.userInteractionEnabled = YES;

UIViewとは異なり、UIImageViewのuserInteractionEnabledプロパティはデフォルトでNOに設定されているため、タッチを受信するには、明示的にYESに設定する必要があります。

于 2012-09-24T15:29:13.807 に答える
0

tap.delegate=selfを設定します。

UIGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(newRound)];

tap.delegate = self;

[imgView addGestureRecognizer:tap];

于 2012-09-24T06:16:04.773 に答える
0

また、クラスが.hヘッダーファイルで委任されていることを確認します。

@interface View : UIView <UIGestureRecognizerDelegate>
于 2012-09-24T17:29:35.927 に答える