2011-10-09 2 views
0

CALayers에서 잠시 동안 문제가 있습니다. UIImageView에 추가하는 레이어를 만듭니다. 나는이 레이어가 다른 뷰와 동일한 위치를 화면에 가져 오기를 원한다. 하지만 UIImageView에 레이어가 추가되면서 NSLog에서 "복사 된"뷰와 동일한 좌표를 갖지만 레이어의 위치는 같지 않습니다. 시도 할 때마다 다른 것을 보려고합니다. 나는 뭔가를 놓쳐 버려야한다. 내가 명시 적으로 layer.position을 설정하면CALayer가 비정상적인 동작을합니다.

CALayer*layer=[CALayer layer]; 
     layer.bounds =copiedImageView.bounds; 
     layer.contents=copiedImageView.layer.contents; 


     CGPoint theCenter=[targetImageView convertPoint:copiedImageView.center fromView:self.view];    
     [layer setPosition:theCenter];  

     [targetImageView.layer addSublayer:layer]; 
     copiedImageView.layer.hidden=YES; 

작동하는 것 같다 (예를. 0,0 (에) 레이어 센터는 targetImageView의 왼쪽 상단에 항상) 논리적이다.

어떤 도움을 주셔서 감사합니다.

+0

애니메이션이 관련되어 있습니까? 'convertPoint : fromView :'를 사용하지 말고 포인트에 값을 추가하고 차이가 있는지 확인하십시오. – Davyd

답변

1

경계가 아닌 프레임을 설정하십시오. 프레임은 레이어가 부모 레이어를 기준으로 배치되는 방식을 결정합니다.

layer.frame =copiedImageView.frame; 

변환을 적용하지 않는 한. 그런 다음 경계와 위치를 개별적으로 설정하여 대략적인 방법으로 수행하고 있습니다.

+0

당신은 옳았습니다, 왜 레이어 프레임 센터가 레이어 위치와 다른지 이해할 수 없습니다. 고마워, 그런데. – NightCoder