iphone - UIImageView para empujar un nuevo ViewController



(3)

Como @Kory Sharp dijo que puedes usar el Reconocimiento de UITAPGesture

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[tap setNumberOfTapsRequired:1];
[yourImageView addGestureRecognizer: tap];

Manejar el método

-(void) handleTap:(UITapGestureRecognizer *)recognizer {
    if (recognizer.state == UIGestureRecognizerStateEnded) {
        //push your view controller
    }
}

En mi aplicación, por una razón específica, quiero un UIImageView táctil para que cuando el usuario lo pulse apunte a un nuevo controlador de vista. Sé hacer lo mismo con UIButton. Pero quiero un UIImageView para hacer esto ahora. ¿Cómo lo haré? Aquí está mi código para UIImageView

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 100, 50, 50)];
[imageView setImage:[UIImage imageNamed:@"myImage.png"]];
 imageView.userInteractionEnabled = YES;
[self.view addSubview:imageView];
[imageView release];

Estoy usando un único reconocedor de gestos de toque aquí

{
     UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 100, 50, 50)];
     [imageView setImage:[UIImage imageNamed:@"myImage.png"]];
     UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
     [tapGesture setNumberOfTapsRequired:1];
     [tapGesture setNumberOfTouchesRequired:1];

     [imageView setGestureRecognizers:[NSArray arrayWithObject:tapGesture]];
     [tapGesture release];
     imageView.userInteractionEnabled = YES;
     [self.view addSubview:imageView];
     [imageView release];
 }

-(void)imageTapped:(id)sender
{
  // Do STUFF HERE
}

Aquí está el código completo sobre el que Mat discutió:

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 100, 50, 50)];
    [imageView setImage:[UIImage imageNamed:@"tap.png"]];
     [self.view addSubview:imageView];
    imageView.userInteractionEnabled = YES;


    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    [tap setNumberOfTapsRequired:1];
    [tap setNumberOfTouchesRequired:1];
    [imageView addGestureRecognizer: tap];
    [tap release];
    [imageView release];
}

-(void) handleTap:(UITapGestureRecognizer *)recognizer {
    if (recognizer.state == UIGestureRecognizerStateBegan) {


       MyTestViewController* viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"TestTable"];
        [self.navigationController pushViewController:viewController animated: YES];

    }
}




uiimageview