4

次のようなモックアップがあります。

モックアップ1

これはすべて、スクロールできる 1 つの大きなテーブル コントローラーです。

セクション ヘッダーがページの上部に到達すると、次のように上部に沿って固定されます。

モックアップ2

これは正常に機能しています。ただし、トップに戻ってプルして更新すると、次のようになります。

ここに画像の説明を入力

そのため、上部のテーブル ヘッダー セルとセクション ヘッダー (固定されていない) の間に [プルして更新] ダイアログが表示されます。

これは可能ですか?私の検索では、このような実装は見つかりませんでした。

4

1 に答える 1

1

これを達成するには、次のことができます。

  1. UIScrollViewビューのサブビューとしてa を追加しUIViewController'sます。
  2. このスクロール ビューのサブビューとしてUIViewとを追加しますUITableView
  3. UIViewスクロール ビュー内は、テーブル ヘッダー セルを表します。
  4. セクション ヘッダーはヘッダーにすることができUITableview、テーブル コンテンツはUITableView'sセルを表します。
  5. UIRefreshControlのサブビューとして追加しUITableView、そのターゲット メソッドを設定します。
  6. - (void)scrollViewDidScroll:(UIScrollView *)scrollViewと の両方にスクロールビュー デリゲートをUITableview実装しUIScrollviewます。
  7. テーブルビューをスクロールしているときは、テーブルビューのヘッダーが上方向に移動するたびに、ヘッダーが一番上に達するまで親スクロールビューを移動します。これを確認するには、スクロールビュー デリゲートに if 条件を追加します。
  8. テーブルビューが下方向に移動した場合、スクロールを停止してテーブルビューをスクロールできるようUIViewにした後、テーブルセルヘッダーが表示されるまで親スクロールビューを移動します。UIScrollviewこれにより、 が有効になりUIRefreshControlます。

ここで重要なのは、- (void)scrollViewDidScroll:(UIScrollView *)scrollViewメソッドとスクロールの実装方法です。contentOffsetテーブルビューとスクロールビューがどれだけスクロールされたかを判断するためのチェックを追加できます。スクロールを制限するために、このデリゲート メソッドでこの値を手動で特定の値に設定すると、その後スクロールしなくなります。

于 2012-11-25T12:10:33.843 に答える