10

uitableviewcontroller で UIRefreshControl を設定していますが、ナビゲーション バーと uitableview の上部の間に大きなギャップがあります。コントローラーは起動時にナビゲーションバーの下に配置されるため、「スクロールビューのインセットを調整する」で遊んでも役に立ちません。「トップバーの下」を無効にすることもできますが、スクロールするときにその機能が必要です。デバッガーをいじってみると、tableView.contentInset が 82 ポイントずれていることが何度かありました。これは、ios7 の新しいバーの動作に関して人々が話している通常の 20/64 ポイントのオフセットとは異なります。何が起きてる?

4

1 に答える 1

24

もっと突っついている間に解決策を見つけました。誰かが数時間を節約できることを願っています!

後に UIRefreshControl をインスタンス化するviewDidLoad:か、少なくともその後までコードで設定しないようにする必要がありattributedTitleました (たとえば、IB でテーブルの更新を有効にした場合)。viewDidLoad: 内に文字列を設定すると、コントロール + テーブルビューの iOS のレイアウトが台無しになりますがviewWillAppear:、ジオメトリが設定された後でも問題ありません。82 ポイントが UIRefreshControl の高さだと思います。IB で更新タイトルを設定すると、この問題も回避できますが、テーブルごとに常に IB で更新を有効にする必要がなかったので、コードでそうしていました。

于 2013-10-08T06:55:09.150 に答える