2013-08-12 2 views
1

나는 다이아몬드 모양을 만들기 위해 45도 회전 한 10x10 크기의 UIView를 사용하고 있습니다. 이 뷰의 위치 설정 엉망 때문에 의도적 중심 값을 주석 한회전 된 UIView에 애니메이션을 적용하면 애니메이션이 사라집니다.

triangle = [[UIView alloc] initWithFrame:CGRectMake(35, kUserViewHeight - 5, 10, 10)]; 
triangle.backgroundColor = [UIColor coolBlue]; 
//triangle.center = CGPointMake(5.0, 5.0); 
triangle.transform = CGAffineTransformMakeRotation(M_PI_2/2); 

: 여기

뷰 회전 코드이다. 나는 이것이 아마 문제 일 수 있다는 것을 완전히 알고 있습니다.

뷰가 완벽하게 표시되지만 애니메이션을 적용하면 뷰가 움직이는 방향으로 움직이며 사라집니다. triangle.transform 속성을 없애면 뷰가 완벽하게 움직이며 사라지지 않지만 분명히 다이아몬드 대신 사각형이됩니다. 나는 주위에 다이아몬드 모양 이동 계획 때문에 중심이 문제가된다 설정

[UIView animateWithDuration:kAnimationInterval animations:^{ 

     triangle.frame = CGRectMake(115, kUserViewHeight - 5, 10, 10); 

}]; 

: 여기

애니메이션 코드입니다. 뷰를 회전시킨 다음 사라지지 않으면 서 화면 전체에 애니메이션을 적용하려면 어떻게해야합니까? 정확히 내가 필요한 곳에 중심점을 계산하는 특별한 방법이 있습니까? 감사! u는 무슨 짓을했는지

답변

0

예 유는 유 유 순서를 애니메이션하는 동안 한 가지 중요한 수도 도움이되는 다음과 같이 수행 사라지고 말했듯이 유, 90도를 회전하고있다


UIView* triangle = [[UIView alloc] initWithFrame:CGRectMake(35, 25, 10, 10)]; 
triangle.backgroundColor = [UIColor colorWithRed:1 green:.4 blue:1 alpha:1]; // i am seeting diff color but not matter 
[UIView animateWithDuration:0.2 animations:^{ 
    triangle.frame = CGRectMake(115, 20, 10, 10);//kUserViewHeight = 25 - 5 (i am assuming)   
//it must be after setting the frame, now put rotation for 45 degree 

triangle.transform = CGAffineTransformMakeRotation(M_PI/4);//it is M_PI/4 not M_PI /2 

}]; 


// triangle.transform = CGAffineTransformMakeRotation(M_PI/4); //you can put it hear or within the animation block 


희망은 유

을 :) 도움
관련 문제