2012-10-19 2 views
0

나는 UIView 방법 animateWithDuration:animations을 사용하여 활주를 움직이기 위해서 UIView입니다. 약간 고르지 보입니다. 더 부드러운 애니메이션을 완성하기 위해 CoreGraphics와 같은 더 좋은 방법이 있습니까?iOS에서 가장 부드러운 애니메이션을 어떻게 얻을 수 있습니까?

+1

는 animateWithDuration 완벽하게 좋은 선택이다 적절한 결과를 제공해야합니다. 고르지 않은 것으로 보이는 경우 누락 된 다른 문제가있을 수 있습니다. 애니메이션에 대한 또 다른 접근법은 CABasicAnimation과 같은 것을 사용하는 것입니다. CABasicAnimation은 레이어의 위치 속성 (또는 CALayer의 다른 애니메이션 가능한 속성)을 이동할 때 애니메이션/슬라이드를 시도하는 뷰의 레이어에 추가 될 수 있습니다. – isaac

+2

이 뷰에 포함 된 하위 뷰의 수 (레이블, 이미지 등)가 모두 오버 헤드에 포함되도록 조사해야합니다. 이러한 뷰가 불투명하지 않으면 애니메이션 성능이 저하 될 수 있습니다. 또한 Mac의 시뮬레이터에서 오래된 또는 엉터리 grahics 카드를 사용하여 애니메이션 성능을 테스트하는 데주의하십시오. 망막 시뮬레이터에 고르지 않은 애니메이션이 보였지만 애니메이션은 실제 장치에서 부드럽습니다. – runmad

+1

iOS Core Animation은 시뮬레이터에서 꽤 고르지 만 장치에서 원활하게 실행됩니다. 장치에서 테스트하십시오. 또한 디버거가 작업 속도를 늦출 수 있기 때문에 Xcode에 묶이지 않은 상태로 앱을 테스트해야합니다. –

답변

0

당신은 다른 사용하려고 할 수 UIViewAnimationOptions

기본값은 UIViewAnimationOptionCurveEaseInOut,하지만 당신은 다른 사람 시도 할 수 있습니다 : 당신이하고있는 모든 뷰를 슬라이딩 경우

[UIView animateWithDuration:1.0 
         delay:0.0 
        options:UIViewAnimationOptionCurveEaseOut 
       animations:^{ 
        v.center = CGPointMake(400, 400); 
       } 
       completion:^(BOOL finished) { 

       } 
]; 
관련 문제