web-dev-qa-db-ja.com

NavigationBar LargeTitleおよびSearchControllerが表示されたiOS 11 UIRefreshControl

LargeTitleとsearchcontrollerを含むnavigationBarがあり、tableViewにrefreshcontrolがあります。

RefreshControlのactivityIndi​​catorをプルして更新すると、プロセスが終了してUIRefreshControllの.endRefreshing()を呼び出しても、defreshプロセスは続行されますが、navigationBarは通常のサイズに戻りません。

enter image description here

同じ問題を持つ誰か?

18
Charles Lima

私はすでにこの解決策を数週間探しており、今日、ようやくそれを機能させました。解決策はとてもシンプルなので、私はそれを以前に見つけたことがないとは信じられません。

通常のUIViewControllerとUITableViewを使用していました。私のレイアウト制約は、UITableViewが次のように下部と上部のレイアウトガイドに0で固定されるように設定されました。

enter image description here

それを変更して、UITableViewをスーパービューにすべてのエッジを0に固定すると、魔法のように機能し始めました。

enter image description here

他に何もセットアップする必要はありませんでした。とても煩わしいので、これで問題が解決することを願っています...


上記が機能しない場合は、それに加えて必要なものを設定します

self.extendedLayoutIncludesOpaqueBars = YES;

または、ストーリーボードの「エッジの延長/不透明バーの下」を確認します

25
xxtesaxx

試す

self.extendedLayoutIncludesOpaqueBars = YES;

不透明なナビゲーションバーがある場合。それは私のために問題を修正しました。

12
beebcon

次のコードスニペットを使用してみてください。

self.navigationController?.navigationBar.prefersLargeTitles = false
self.navigationController?.navigationBar.prefersLargeTitles = true;
0
wj2061