Próbuję wykonać animację UIView, w której obraz zaczyna się w lewym górnym rogu ekranu i rozwija się do pierwotnego rozmiaru i miejsca na środku ekranu. Do tej pory udało mi się zrobić to osobno, ale kiedy spróbuję połączyć te animacje, zrobię tylko animację skali.Jak połączyć skalowanie i animację tłumaczenia
Czy istnieje sposób, aby wykonać tę pracę z Skala i tłumaczenie w tym samym czasie?
Oto co mam do tej pory:
CGAffineTransform setpointTrans = CGAffineTransformMakeTranslation(-200.0f, -200.0f);
CGAffineTransform setpointScale = CGAffineTransformMakeScale(0.0f, 0.0f);
_RSEImage.transform = CGAffineTransformConcat(setpointTrans, setpointScale);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
CGAffineTransform scaleTrans = CGAffineTransformMakeScale(1.0f, 1.0f);
CGAffineTransform lefttorightTrans = CGAffineTransformMakeTranslation(0.0f,0.0f);
_RSEImage.transform = CGAffineTransformConcat(scaleTrans, lefttorightTrans);
[UIView commitAnimations];
Ok ja zorientowaliśmy się, o to co zmieniłem:
_RSEImage.transform = CGAffineTransformMakeScale(0.0f, 0.0f);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
CGAffineTransform scaleTrans = CGAffineTransformMakeScale(1.0f, 1.0f);
CGAffineTransform lefttorightTrans = CGAffineTransformMakeTranslation(200.0f,200.0f);
_RSEImage.transform = CGAffineTransformConcat(scaleTrans, lefttorightTrans);
[UIView commitAnimations];
Wypróbowałem twój kod i idealnie robi to, co chciałbyś osiągnąć: skalowanie i tłumaczenie ... Jaki jest punkt źródłowy RESImage przed tym kodem? – nzs
x 160 y 242, domyślam się, że to, o co pytasz, przepraszam, to moja pierwsza aplikacja na iPhone'a. Rozmiar obrazu to 161 x 71 –
Trudno powiedzieć z tego kodu, gdzie masz problem, ponieważ w zasadzie ten fragment kodu działa, jest to sposób, w jaki robisz transformację afiniczną "scalając". Więc myślę, że jakaś inna część twojego kodu uniemożliwia jakoś tłumaczenie lub nie jest widoczna ... Zacznij dodawać funkcje stopniowo, komentując rzeczy i sprawdzaj, że do tego momentu wszystko wygląda dobrze. Na przykład. sprawdź ten fragment dla pierwszych 3 linii ze skalą 0.3f i -100f - widzisz img? następnie dodaj tylko tłumaczenie, aby przetestować parametry, a następnie scal ze skalą. Możesz również użyć mojej odpowiedzi, ponieważ bloki są łatwiejsze. – nzs