2011-09-26 4 views
2

CALayer의 어파 인 변형을 변경하려고합니다. 그 속에서 그려지는 것이 변형됩니다. CGContextConcatCTM 대 CALayer affineTransform

먼저 난 그냥 CGContextConcactCTM에 전달 다른 CGAffineTransform로 다시 그릴, CALayers없이이 일을했다. 근무하지만 빠른 충분하지 않았다, 그래서 그것을 모든 시간을 다시 그려하지 않도록의 CALayer와 함께하기로 결정

. 그냥 변형됩니다.

문제점은 myLayer.affineTransform = myTransform을 설정하는 것입니다. CGContextConcatCTM (myTransform)을 사용하여 다시 그리는 것과 같은 효과가없는 것 같습니다.

나는 목표 - C에 새로운 수학을 꽤 절름발이, 그래서 내가 뭔가 잘못하고 있어요 확신합니다. 그러나 나는 무엇을 볼 수 없다.

감사합니다.

+0

좋아, 내가 답을 찾았지만, 내가 당신은 또한 자신을 받아 들일 수 ... 요청 후 8 시간 동안 – Odrakir

답변

0

좋아, 신경 쓰지 마.

는 myLayer.affineTransform은이 층의 중심에 대하여 변환 않는 밝혀 여기서 CGContextContactCTM가 상대 원점처럼.

그래서 난 그냥 연결된이 다른 변환 :

CGPoint center; 
    center.x = capa.bounds.origin.x + capa.bounds.size.width/2; 
    center.y = capa.bounds.origin.y + capa.bounds.size.height/2;   
    CGAffineTransform trf1 = CGAffineTransformMakeTranslation(center.x, center.y); 
    CGAffineTransform trf2 = CGAffineTransformMakeTranslation(-center.x, -center.y);   
    capa.affineTransform = CGAffineTransformConcat(trf1, CGAffineTransformConcat(mat, trf2));  
+0

을 내 자신을 대답 할 수없는 것 답변. 수령이 무엇인지 궁금하다면 [FAQ] (http://stackoverflow.com/faq#howtoask)를 읽으십시오. –