Я начинаю работать с Core Animation, и мне стало интересно, как обрабатывать различные типы событий мыши, например
- мышь вошла в
CALayer - мышь вышла из
CALayer - щелкните мышью на
CALayer
На данный момент я концентрируюсь только на mouseDown сообщении, отправленном в мое пользовательское представление. Согласно документации, я должен использовать -hitTest:(CGPoint)point, вызывая на моем корневом уровне (тот, который установлен с [customView setLayer:rootLayer]).
Он должен вернуть самый дальний слой в дереве, который находится в позиции, указанной точкой. Так я и сделал:
[rootLayer hitTest:[event locationInWindow]]
но это не работает. Кажется, работает, если я просто нажимаю rootLayer, иначе возвращается только null. Конечно, подслои добавляются в rootLayer (на самом деле они нарисованы)
Мне не хватает какого-то преобразования координат? Кроме того, можно ли обрабатывать щелчки мышью?
Чтобы узнать, когда мышь входит в CALayer, нужно ли мне проводить тестирование нажатия для каждого обновления движения мыши?
заранее спасибо