2011-12-05 2 views
0

나는 frame.size.height0으로 변경하여 을 사용하여 UIButton을 숨 깁니다. 그러나 애니메이션이 시작되면 곧바로 둥근 사각형과 배경이 사라지고 버튼 텍스트는 뷰의 경계를 벗어납니다.이미지 왜곡없이 UIButton의 높이에 대한 변화를 어떻게 애니메이트 할 수 있습니까?

CGRect newFrame = button.frame; 
newFrame.size.height = 0; 
[UIView animateWithDuration:2.0 animations:^{ 
    button.frame = newFrame; 
}]; 

나는이 만 나는 그것이 애니메이션이 시작될 때, 버튼을 것 같다 0으로 높이를 설정있을 때 발생하는 것으로 나타났습니다 :

내가 사용하는 코드는 매우 간단합니다 한 번 마지막 상태로 다시 그려집니다. 애니메이션은이 정적 이미지를 원본 크기에서 최종 크기로 조정하여 수행됩니다. 높이가 0 인 버튼을 볼 수 없으므로 전체 라운드 수정이 사라집니다 (버튼의 텍스트는 다른보기이므로 제외).

애니메이션을 이상하게 보이지 않게하려면 더 좋은 방법이 있어야합니다. 어떻게하면 애니메이션을 원하는대로 움직일 수 있습니까?

답변

0

이렇게하면 더 잘 작동합니까?

CGRect newFrame = button.frame; 
newFrame.size.height = 1; 

[UIView animateWithDuration:2.0 
       animations:^{button.frame = newFrame;} 
       completion:^{button.hidden = YES;}]; 

당신이 시스템이 RECT 버튼을 반올림 사용하는 경우, 그것은 또한 사용자 정의 버튼을 더 잘 작동 할 수 있습니다, 그들은 특정 수준 이하로 크기를 조절할 좋아하지 않아 수 있습니다.

0

왜 애니메이션에서 버튼의 알파 값을 0으로 설정하지 않습니까? 아니면 높이를 움직여야합니까?

+0

내 앱에서 버튼이 UITableView 헤더에 나타나고 버튼 아래의 콘텐츠가 사라지면 그 위치로 위로 이동하려고합니다. –

0

버튼의 이미지 스냅 샷을 찍은 다음 뷰를 위쪽으로 회전하는 아핀 변환 애니메이션을 실행하거나 y 축척을 변경합니다.