2012-11-08 5 views
0

У меня есть несколько слоев CA на мой взгляд, и я хочу получить определенный уровень для выполнения некоторых задач на нем ... например, удаление с помощью анимации. Все, что я использую с помощью метода hitTest, является CGPoint этого местоположения. Теперь я застрял в этой точке, что как я могу получить местоположение слоя, который был использован, поэтому я могу выполнить определенное действие на нем.Как получить слой при нажатии?

Спасибо заранее ...

ответ

1

Я сделал это для UIView, но попробуйте то же самое для CALayer.

for(CALayer *layer in [self.view subviews]){ 
    if([layer class]==NSClassFromString(@"CALayer")){ 
     if([layer hitTest: location]){ 
      NSLog(@"you have clicked the layer in the point location"); 
     } 
    } 
} 
+0

спасибо большое .... это сработало ... – iOmi

0

вызова CALayer :: Трассировка

/* Возвращает дальний потомок слоя, содержащей точку 'р'. * Братья и сестры обыскиваются в порядке сверху донизу. 'p' определяется как * в координатном пространстве ближайшего предка получателя, что * не является CATransformLayer (уровни преобразования не имеют координатного пространства 2D *, в котором может быть указана точка). */

  • (CALayer *) hitTest: (CGPoint) p;

например, в хостинге UIView:

touchesEnded:(NSSet*)ts { 
    UITouch *touch = ts.anyObject; 
    CALayer *hit = [self.layer hitTest:touch.location]; 
} 
+0

hittest is great .... – iOmi

 Смежные вопросы

  • Нет связанных вопросов^_^