2009-08-06 13 views
1

아이폰 앱의 다른 뷰 위에 뷰를 애니메이트하고 싶습니다. 기본적으로 내 사용자 지정 컨트롤을 제외하고 내 사과 키보드 모양처럼 보이길 원합니다. 버튼을 클릭하면 새 뷰가 화면 하단에서 뷰의 일부 위에 표시됩니다.다른 뷰 위에 뷰 애니메이션하기

어떻게하면됩니까?

답변

5

슈퍼 뷰의 보이는 프레임 (애니메이션을 적용한 뷰)의 바깥쪽에 뷰를 추가 한 다음 애니메이션 블록을 사용하여 위치를 변경하십시오. 그것은 위로 미끄러질 것이다.

- (void)addView 
{ 
    // Obviously this won't compile with cut&paste... you have 
    // to supply the actual views. 
    UIView* myControlView = // assume this exists somewhere 
    UIView* myMainView = // assume this exists too 
    myControlView.frame = CGRectMake(0, 480, 320, 100); // use real numbers 
    [myMainView addSubview:myControlView]; 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
    myControlView.frame = CGRectMake(0, 380, 320, 100); 
    [UIView commitAnimations]; 
} 

이렇게하는 데는 여러 가지 다른 방법이 있습니다. 예를 들어 원하는 위치로 정확하게보기를 설정 한 다음 화면에서 "숨기"위해 번역 할 수 있습니다. 다시 되돌아오고 싶을 때, 애니메이션 블록 내에서 아핀 변환으로 다시 변환하면 다시 슬라이드됩니다. 이런 식으로 인터페이스 빌더를 사용하는 것과 같이 사전 레이아웃 된보기를 사용하면 프레임의 위치를 ​​정확히 알지 못하거나 다른 코드에서 변경 될 수 있으므로 좀 더 잘 작동합니다.

+0

어쨌든 내가 tableviews 함께 작동하도록 얻을 수 있습니까 ?? 예를 들어 행을 클릭하면 화면 하단에서 컨트롤이 나타납니다. UIScrollView의 자식에 대해 위의 코드를 사용하면 최적으로 작동하지 않습니다. – zpesk

+1

스크롤보기 자체가 아닌 스크롤보기가 포함 된보기에 이와 같은 내용을 추가해야합니다. 사실, 스크롤 뷰와이 컨트롤은 형제입니다.이 컨트롤은 사용 중일 때 가장 중요합니다. –

+0

어떻게 당신이 제일보기로 만들겠습니까 ??? – zpesk

관련 문제