(UIView *) hitTest в viewcontroller? - PullRequest
       3

(UIView *) hitTest в viewcontroller?

8 голосов
/ 08 сентября 2010

Можно ли использовать

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;

в файле viewcontroller.m? любой учебник пожалуйста?

Ответы [ 3 ]

11 голосов
/ 08 сентября 2010

hitTest:withEvent: метод объявлен в классе UIView, поэтому вы не можете напрямую использовать его в подклассах UIViewController.

Но другие методы отслеживания касаний, такие как touchesBegan:withEvent: и т. Д., Объявлены в UIResponder и могут быть реализованы как в подклассах UIView, так и в UIViewController

5 голосов
/ 27 декабря 2010

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

Например. NavPanelViewController.m

- (id)init

    theView = [[NavPanelView alloc]init]; // declare theView in your header and in dealloc release
    self.view = theView;

Затем вы можете переопределить метод pointInside в своем подклассе.

3 голосов
/ 08 сентября 2010

Вы всегда можете определить конкретного делегата для обработки информации, относящейся к hitTest. В hitTest:withEvent: в файле .m (реализация) вашего класса UIView вызовите метод делегата, передав всю необходимую информацию делегату для обработки. Объявите ваш класс ViewController для реализации делегата следующим образом:

@implementation MyViewController: UIViewController <HitTestDelegate>

Таким образом, фактическая реализация логики после касания пользователя будет в классе MyViewController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...