2012-02-15 4 views
0

나는 직사각형의 메뉴 스타일보기 (보기 1)가 약 100px 아래에 놓여 있습니다 (즉, 창 위에 공간이 있습니다). 따라서 애니메이션을 적용해야합니다 드롭 다운 콘텐츠 (보기 2)는 화면 1의 화면 아래쪽에 나타납니다.보기 1의 하단 경계에서 시작하는 애니메이션이 필요합니다 - iOS 5 알림 풀다운과 마찬가지로 화면. 여러 가지 이유로 내가보기의 아래쪽 가장자리 내가했습니다 1.점진적으로 드러내고 UIView를 다른 UIView 뒤에서 아래로 밀어 내기

에 도달 할 때까지의 동작을 숨겨 UIView의 오버레이 할 수 없기 때문에

는 단순히 화면 오프에서보기 2 슬라이드 수 없습니다 이 대답을 체크 아웃 - Programmatically reveal a UIView -하지만 정적 인 시작 지점에서 공개되지 않기 때문에 나는 메뉴를 슬라이드 싶지 이후 적절하다고 생각하지 않습니다. 그리고 지적한대로 다른 뷰를 사용하여 슬라이딩 뷰를 "숨길"수는 없습니다.

io5 알림 풀다운과 비슷한 방식으로보기 2를 아래로 슬라이드하여 다른보기의 아래쪽 경계에서 나타납니다.

답변

1

경계가 잘린 슈퍼 뷰에서 두 하위 뷰를 모두 포함합니다. 그래서 당신은 superview (애플 리케이션 윈도우를 말하자), 그리고 그 안에 (경계가 잘린) 뷰를 가졌을 것입니다. 이것을 컨테이너 뷰라고 부르 자. 이 컨테이너는 현재 삽입 된/항상 볼 수있는 뷰가 수행하는 Y 좌표가 무엇이든 발생하지만 높이가 완전히 확장 된 "슬라이딩"세 번째 하위 뷰를 포함 할 정도로 충분히 확장됩니다.

컨테이너보기 내에서 첫 번째로 항상 볼 수있는 뷰 (뷰 1)를 좌표 0x0y에 배치 한 다음 슬라이딩 뷰 (뷰 2)를 아래에 삽입하고 프레임 y 오프셋은 뷰 2는 오버레이 된 뷰 1 및 컨테이너 뷰의 클리핑 된 경계에 의해 그것을 완전히 감추기에 충분하게 음의 값으로 설정된다.

사용자가 드래그 (또는 '슬라이딩'보기를 공개하는 데 사용하는 것을 의미)하면 세 번째보기가 항상 현재보기 아래에서 아래로 슬라이드되지만 항상 가장 잘린보기 내에 유지됩니다. 비올라.

+0

대단히 고맙습니다! 이 바운드 클리핑 물건은 절대로 나에게 많은 의미를주지 못했습니다. – beaudrykock

관련 문제