나는이보기를하고 난 내 코드의 다른 지점에서뷰의 동시 회전 및 크기 조절을 어떻게 애니메이트합니까?
myView.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
//The view was originally at 0 degrees.
같은 것을 사용하여 일부 회전 변환을, 나는 그것을 애니메이션보기를 확장하고 싶은, 그래서 나는
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
myViews.transform = CGAffineTransformMakeScale(2.0f, 2.0f);
[UIView commitAnimations];
을
하지만 그렇게하면 뷰가 0 도인 상태에서 애니메이션이 수행되므로 이전 변형은 무시됩니다. 뷰가 아직 0 도인 것으로 가정하므로이 애니메이션은 뷰의 크기를 조정하고 다시 0도까지 회전합니다 (!!!! ?????)
이 버그가 있거나 뭔가 빠졌습니까? ? 덕분에 .
감사합니다. 그러나 회전 문제는 해결되지만 크기 문제가 발생합니다. 문제는 이것입니다 : 저는이 뷰를 위해 사용하는 4 가지의 줌 요소가 있습니다. 0.66, 1.0, 1.5 및 2.0과 같습니다. 이들은 절대 값입니다. 솔루션을 사용하면 각 확대/축소 비율로 돌아갈 수 없습니다 .... – SpaceDog
@Mike : 왜 줌 배율을 저장하기 위해 독립적 인 ivar을 사용할 수 없습니까? – kennytm
무슨 뜻입니까? 확대/축소 비율이 1이라고 가정하고 솔루션을 사용하고 0.66으로 이동하십시오. 이제 2로 가고 싶습니다. 절대 스케일을 사용하면 zoomFactor를 2로 설정하지만 줌 요소는 3.03이어야합니다. 이제 0.66으로 돌아가려면 0.21로 만들어야합니다. 수많은 변화가 일어난 후에 나는 현재 줌 요소가 무엇인지 알지 못할 것입니다. 나는 적용된 모든 변환의 이력을 유지해야만 ivar를 보는 것만으로 현재 확대/축소 요소를 알 수 있습니다. 변형을 뷰에 적용하여 영구적으로 만들 수있는 방법이 없습니다. 변환 행렬을 업데이트하겠습니까? – SpaceDog