2011-12-13 3 views
2

나는 아래쪽에 축이있는 동안 뒤집기 애니메이션을 만들려고 UIView 있습니다. 예 :iOS UIView 애니메이션 CATransform3DMakeRotation 혼동

enter image description here

, 나는 UIView의 애니메이션 사용하려고이 작업을 수행하려면, 지금은 내가 원하는 방법을 작동하지

[UIView animateWithDuration:3 delay:0 options:UIViewAnimationCurveEaseOut animations:^{ 

    // Flip Down 
    top3.layer.anchorPoint = CGPointMake(0.5, 1.0); 
    top3.layer.transform = CATransform3DMakeRotation(M_PI, 1, 0, 0); 

} completion:^(BOOL finished) { 

    // Reset? 
    //top3.transform = CGAffineTransformMakeScale(1, 1); 

}]; 

을보기가 AWAY 애니메이션처럼 보인다 사용자가 아니라 오히려. 그것은 내 이미지에서 볼 수 있듯이, 내려갈 때 사용자에게 더 가까이 보이게하는 3D 효과를주는 것처럼 보이지 않습니다. 나는 이것이 나의 이해 부족 때문에 CATransform3DMakeRotation을 사용하는 것이기 때문에 이것이 긍정적이라고 생각합니다.

질문 :

  • 가 어떻게보기를 할 수 있습니다
      가 방울로 사용자에게 가까이 표시 ? 내 이미지 예제 에서처럼 기울이는 것과 같은?
    • anchorPoint을 설정하면 내보기가 아래로 바뀌고 어떻게이를 방지하고 내 anchorPoint을 설정할 수 있습니까?
    • UIView 애니메이션을 사용하면 여유 설정을 사용할 수 있습니까? 옵션으로 UIViewAnimationCurveEaseOut을 사용했습니다.
    • 중력 설정을 사용할 수 있습니까?
  • +2

    'M_PI/2'는 = 90도입니다. 시작을 위해 반쯤 멈추는 것에 대답해야합니다. –

    +0

    감사합니다. 제 질문에이를 수정하고 테스트하여 작동합니다. 그러나 나는 여전히 나머지 이슈들을 가지고있다. –

    답변

    2
    • 권리, 그것은 귀하의 질문에 완전히 명확하지 않다, 그러나 회전 할 때 당신은 애니메이션 뷰의 체류 직사각형 동안 투시 왜곡 표시되지 않는 것 같은데? CALayer가 원근감을 가지고 표시하려면, 은 here과 같이 m34 요소 집합을 가져야합니다.
    • anchorPoint보기의 레이어 이동을 보완하려면보기의 원래 위치를 변경해야합니다.
    • 예. 사용중인 애니메이션 옵션 외에도 몇 가지 애니메이션 옵션이 있으며이 두 가지를 결합 할 수 있습니다 (예 : UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionAllowUserInteraction).
    • Core Animation에는 실제로 물리학 개념이 없습니다. 진행중인 효과에 따라 특정 애니메이션 설정과 함께 여러 애니메이션을 연결하여 얻을 수 있습니다. 예를 들어 단단한 표면에 부딪히는 떨어지는 물체는 방해가되지 않는 애니메이션을 사용합니다. 그 다음 다시 튀어 나오면 "쉽게 풀어 준다".
    +0

    감사합니다. m34 요소가 작동하도록 설정하면 훨씬 더 좋아 보입니다. 나는 또한 원래를 고쳤다. 앵커가 작동하도록 배치하십시오. 내 모든 문제가 해결 된 것 같습니다. 감사! –

    +0

    또한 애니메이션의 중간 단계를 알 수있는 방법이 있습니까? 절반 지점에서 UIView 배경색을 변경하고 싶습니다. –

    +1

    UIView 애니메이션이 완료되었음을 알리는 것은 아니지만, 0 ° -90 ° 부분을 먼저 실행 한 다음 배경색을 전환하는 두 단계로 애니메이션을 적용하여 동일한 효과를 얻을 수 있습니다. 그 다음 90 ° -180 ° 부분을 실행합니다. 올바른 보간법 인 상반부의 경우 쉽게 곡선을, 두 번째 경우는 완화 또는 선형 곡선을 사용하면 효과가 매끄러 워야합니다. –