Получите событие касания к определенной области как фотогалерея в iphone - PullRequest
0 голосов
/ 27 февраля 2012

В моем приложении для iPhone / iPad (в Objective-C) есть некоторые события UiButton и другие, а также UiImageView. Изображение занимает весь экран, и я хочу, чтобы при касании верхней или нижней области экрана (то есть, предположим, одна кнопка в верхней области) размер изображения изменяется до определенного размера.

Но я не могу распознать, касается ли он верхней области или нет, как в Фотогалерее iPhone (где, если я касаюсь верхней / нижней области, появляется кнопка навигации, то же самое, что я хочу в своем приложении ).

У меня уже есть сенсорные события в моем приложении:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {}

Если у кого-то есть идея или решение, пожалуйста, дайте мне знать.

1 Ответ

1 голос
/ 27 февраля 2012

Наиболее очевидным решением было бы создать подкласс UIImageView, затем переопределить его метод touchesBegun: withEvent: и в этом методе проверить, где произошло фактическое касание:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch * touch = (UITouch *)[touches anyObject];
    CGPoint location = [touch locationInView:self];

    if (location.y > some_arbitrary_value || location.y < some_other_arbitrary_value) 
    {
         //touched upper or lower part
    }

}
...