5

私はこれに腹を立てています。これは、一歩下がって、これを実装する最も簡単な方法を見つける必要があることの 1 つかもしれません。これでも何も見つかりません。私はこれをグーグルで検索しました。

Pocket アプリでプルダウンすると、searchBar と同じようにメニューが表示されます。この例では、中間点を超えて引っ張ったときのフェイクバーを解放すると、スプリングが所定の位置に表示されます。中間点より前に放すと、バーはスナップバックして非表示になります。ここに示すように

ここに画像の説明を入力

私の場合、これを再現しようとしましたが、うまくいきませんでした。私の場合、UIViewController ビュー内に UITextView があります。私はそれがすべて間違っていると思います。

UIScrollView をオフスクリーンで開始することで非表示にして動作させ、ボタンを押すと UIScrollView が表示されます。問題は、このメソッドがすべてをカバーするため、多数のビューのサイズを変更して再レイアウトする必要があることです。これはおそらくUITableViewにありますか?ただし、プル アクションにしたいのですが、このバーにいくつかの TextStrings/Labels を配置したいだけです。

前もって感謝します。

4

2 に答える 2

6

UIScrollView (または UITableView) が必要で、表示したいメニューを上部 (たとえば、テーブル ビュー ヘッダー) に配置してから、スクロール用のデリゲート コールバックを取得する必要があるように感じます。

UIScrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView

ドラッグ デリゲート コールバックのいくつかを監視する必要がある場合もあります。

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

コンテンツ オフセットをメニューの高さに設定することで、最初にメニューを非表示にすることができます。次に、スクロール用のデリゲート コールバックをキャッチし、スクロールがメニューのサイズの半分を超えた場合は、アニメーションでコンテンツ オフセットを設定します。

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
于 2012-09-11T07:56:02.393 に答える
1

あなたの目標を正しく理解していれば、スクロールビューは必要ありません。

私がすることは、UIView必要なものをすべて含むシンプルなものを用意し、それを可視領域の外に配置することです。これがプルダウン ビューになります。UIPanGestureRecognizer次に、ビューに を追加し、UIViewControllerそれを使用して指の動きを追跡し、それに応じてプルダウン ビューのフレームを更新します。次に、この更新メソッドでは、位置がしきい値を超えたかどうかを確認し、超えている場合は、プルダウン ビューを最終的な位置にスナップさせます (もちろんアニメーションを使用)。

に慣れていない場合UIPanGestureRecognizerは、ここに本当に良いチュートリアルがあります: http://www.raywenderlich.com/6567/uigesturerecognizer-tutorial-in-ios-5-pinches-pans-and-more

于 2012-09-13T08:29:53.643 に答える