#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. Попробуйте реализовать в соответствии с вашими требованиями. Оставьте комментарий для получения дополнительной помощи.
Надеюсь, это поможет.