Проблема с возвратом пользовательского подкласса CALayer из hitTest - PullRequest
1 голос
/ 17 ноября 2010

Я пытаюсь идентифицировать пользовательские подклассы CALayer через тестирование. Это прекрасно работает с одним исключением:

Мои пользовательские CALayers представляют текстовые окна, и все данные (содержимое, цвет фона, положение, ...) взяты из NSManagedObjects (из CoreData). Мой подкласс CALayer сохраняет связанный с ним класс managedObject в переменной экземпляра. Проблема: я не могу получить доступ к этому ивару:

Когда я проверяю так:

CustomCALayer *customLayer =[self.layer.presentationLayer hitTest:mouseDownPosition];   

... customLayer содержит все атрибуты, которые есть у CALayer (например, backgroundColor или name), но не мой управляемый объект ivar. Я подозреваю, что это происходит потому, что hitTest возвращает CALayer, а не мой подкласс.

Но как мне обойти это?

(Я также попытался выполнить тестирование подслоя «hitTestLayer» моего слоя и затем получить слой через hitTestLayer.superlayer. Но, ну, superlayer также возвращает CALayer ...)

1 Ответ

0 голосов
/ 21 ноября 2010

Переопределили ли вы пользовательский метод CALayer - hitTest для возврата CustomCALayer вместо CALayer?

...