13

2 つのスクロール ビューがあり、どちらも垂直方向にスクロールすることになっています。外側のスクロール ビュー (赤) には検索バーと内側のスクロール ビュー (青) が含まれています。内側のスクロール ビューは、無限にスクロールすることになっています (画像/アイテムが含まれており、無限スクロールが実装されています)。

このコントローラーを機能させる方法は次のとおりです。

下にスクロールすると、外側のスクロール ビューが最初にスクロールし、検索バーが消えます (コンテンツ領域からスクロールします)。その後、内側のスクロール ビューがスクロールを開始する必要があります。上にスクロールすると、内側のスクロール ビューが一番上までスクロールする必要があります。その場合にのみ、外側のスクロール ビューがスクロール イベントを取得し、最後に上にスクロールして検索バーを再び表示する必要があります。

何も変更せずにIBにネストすると、内部スクロールビューがすべてのスクロールイベントをキャッチし、逆に機能します。

ここでは単純化の比喩として内側のスクロール ビューを使用していることに注意してください。私のアプリでは、実際にここにコントロールがあり、ネストされたテーブル ビューを持つスクロール ビューがあります (スクロール ビューでは水平方向にページを移動でき、テーブル ビューでは垂直方向にスクロールできます)。

ここに画像の説明を入力

4

6 に答える 6

1

1 つのスクロールビューの例を示しましたが、もう 1 つのスクロールビューを作成し、動的な高さとコンテンツ サイズに基づいて追加する必要があります。

// .h ファイル

@property (nonatomic, strong) UIScrollView *scrlSearch;

// .m ファイル // ViewDidLoad

scrlSearch = [[UIScrollView alloc] init];

// For first scroll screen height was ((total screen height / 100 )* 10% )
// For Second scroll screen height was ((total screen height / 100 )* 90% )
scrlSearch.frame = CGRectMake(0, 0, (YourScreenWidth), (YourScreenHeight));

// YourVIEW = add any view to scrollbar
[scrlSearch addSubview:YourVIEW];

CGSize contentSize = scrlSearch.frame.size;
// YourContentHeight = dynamic content or static content height
contentSize.height = YourContentHeight;

// set the ContentHeight for scrolling
[scrlSearch setContentSize:contentSize];
// add the scrollview into delegate
[scrlSearch setDelegate:self];
于 2013-04-27T09:47:00.480 に答える
0

最上位のビュー (View Controller のビューのすべてのスクロール ビューの上) にスワイプ ジェスチャ レコグナイザーを作成し、それを認識させUISwipeGestureRecognizerDirectionUpます。

次に、外側のスクロール ビューがスクロールするたびにコントローラーに通知する必要があります。下にスクロールしたら、ジェスチャ認識エンジンを追加します。再びトップに達したら (outerScrollView.contentOffset == (0,0))、ジェスチャ認識エンジンを削除します。

ジェスチャは、存在する間、すべてのスワイプ イベントを「食べる」必要があり、内部のスクロール ビューがタッチ イベントを受け取らないようにするため、スクロールしません。

于 2013-04-29T13:33:18.033 に答える
0

あなたが持っていて、実装したい構造についてはわかりません..

ここでテストプロジェクトを見つけました

しかし、このプロジェクトは間違いなく、さまざまなスクロールビューをまとめて管理するのに役立ちます..

アプリケーションは完璧ではないかもしれませんが、ソリューションを実現するためのアイデアを提供します。

それが役に立てば幸い..

乾杯

于 2013-04-24T08:41:02.343 に答える