Включить событие касания в myImageView, только когда пользователь нажимает на myImageView

#objective-c #xcode #ipad #uiimageview #touch

#objective-c #xcode #iPad #uiimageview #коснитесь

Вопрос:

у меня есть класс UIViewController с именем myViewClass.

существует UIImage view с именем myImageView.

как я могу включить событие касания в myImageView.

я использовал приведенный ниже код, чтобы включить событие касания в myImageView, однако событие касания myImageView запускается при каждом нажатии myViewClass или пользовательского интерфейса.

кто-нибудь может сказать мне, как я могу этого избежать. мне просто нужно только включить событие касания в myImageView, когда пользователь нажимает на myImageView.

я использовал приведенный ниже код, чтобы включить событие касания в myImageView:

  -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    [imageview setFrame: CGRectMake(30,70,375,225)];
    [imageview.layer setBorderColor: [[UIColor whiteColor] CGColor]]; 
  }
  

Ответ №1:

Используя следующий код, вы можете судить, что ваше касание закончилось в вашем UIImageView.

     - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
    {
         [super touchesEnded:touches withEvent:event];
         UITouch *touch = [touches anyObject];
         CGPoint touchEndpoint = [touch locationInView:self.view];
         if(CGRectContainsPoint([myImageView frame], touchEndpoint))
         {
              NSLog("Touch is in UIImageView");
         }
    }
  

В приведенном выше коде CGRectContainsPoint является основной функцией, которая помогает определить, находится точка касания на границе изображения или нет.

Этот способ вы также можете реализовать в touchesBegin. Попробуйте реализовать в соответствии с вашими требованиями. Оставьте комментарий для получения дополнительной помощи.

Надеюсь, это поможет.