2012-11-08 3 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 :: 그러나 hitTest는

/* 포인트 'P'를 포함하는 층의 먼 후손을 돌려줍니다. * 형제는 위에서 아래 순서로 검색됩니다. 'p'는 *이 CATransformLayer가 아닌 수신기의 가장 가까운 조상의 좌표 공간에서 *으로 정의됩니다. 변환 레이어에는 점을 지정할 수있는 좌표 공간 인 2D *이 없습니다. */

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

호스팅의 UIView :

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

hittest는 우수합니다 .... – iOmi

관련 문제