2012-02-15 22 views
0

私は長方形のメニュースタイルのビュー(ビュー1)をウィンドウの向こう側に約100ピクセル下に置いています(ウィンドウの上にスペースがあります)。ビュー1から画面の下側に表示されるドロップダウンコンテンツ(ビュー2)。ビュー1の下の境界から開始するアニメーションが必要です - 特定のポイントを除いてiOS 5通知プルダウンと同じように画面。UIViewを別のUIViewの背後から徐々に表示してスライドさせる

様々な理由のために、私はそれが私がき図1

の下縁に達するまで、その動きを隠すことになるのUIViewをオーバーレイすることができないので、私は単に、画面外からのビュー2をスライドすることができませんこの回答をチェックアウト - Programmatically reveal a UIView - 私は静的な開始点から明らかにされていない、私はメニューをスライドさせるので、それは適切だとは思わない。そして、指摘したように、スライドビューを別のビューで「隠す」ことはできません。

io5通知のプルダウンと同様に、ビュー2を別のビューの下側境界から現れるように表示するにはどうすればよいですか?

答えて

1

両方のサブビューがスーパービュー内に含まれ、その境界がクリップされています。だからあなたはあなたのスーパービュー(アプリケーションウィンドウと言う)、その内にビュー(境界線がクリッピングされている)を持っています。これをコンテナビューと呼ぶことにしましょう。このコンテナは、現在挿入されている/常に表示されているビューのY座標を元にして作成されますが、その高さは完全に拡張された「スライド」の第3のサブビューを包含するように十分に長くなります。

コンテナビュー内では、最初に常に表示されるビュー(ビュー1)を座標0x0yに配置し、その下にスライドビュー(ビュー2)を挿入し、フレームyオフセットそれに応じて十分な負の値に設定して、オーバーレイビュー1とコンテナビューのクリッピングされた範囲で完全に非表示にします。

ユーザーがドラッグすると(「スライド」ビューを開示するために使用することを意味する)、3番目のビューは常に表示されているビューの下から下にスライドしますが、常に最もクリッピングされたビュー内にとどまります。ビオラ。

+0

素晴らしい作品 - 多くの感謝!この境界をクリッピングするものは私にはあまり意味がありませんでした。 – beaudrykock

関連する問題