Включите сенсорное событие в myImageView, только когда пользователь нажимает на myImageView - PullRequest
0 голосов
/ 14 июня 2011

У меня есть класс UIViewController, названный myViewClass.

есть представление UIImage, названное myImageView.

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

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

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

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

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

1 Ответ

1 голос
/ 14 июня 2011

Используя следующий код, вы можете судить, что ваше касание закончилось на вашем 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 - это основная функция, которая помогает определить, находится ли точка касания на границе изображения или нет.

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

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

...