web-dev-qa-db-ja.com

iOS 11でコレクションビューの大きなタイトルナビゲーションバーに更新コントロールを追加する方法

Appleによると、更新コントロールはiOS 11の大きなタイトルナビゲーションバーの一部である必要があります。

UITableViewControllerのストーリーボードで更新コントロールを有効にした場合、更新コントロールはナビゲーションバーの一部です(プルして更新)。

refresh control with large titles

UICollectionViewControllerのような他のすべてのビューについて、ストーリーボードでこれを行うことはできません。サブビューとしてコードに更新コントロールを追加すると、ナビゲーションバーの一部ではなくなります。

refreshControl = UIRefreshControl()
collectionView?.addSubview(refreshControl)

ただし、次のようになります。

looks like this though

UICollectionViewControllerなどのカスタムスクロールビューに更新コントロールを追加して、大きなタイトルが使用されているときに更新コントロールがナビゲーションバーに表示されるようにするにはどうすればよいですか?

13
funkenstrahlen

IOS 10現在、UITableViewおよびUICollectionViewにはrefreshControlプロパティがあります。

したがって、代わりに:

tableView.addSubview(refreshControl)

あなたがやる:

tableView.refreshControl = refreshControl

これはiOS 11の新しい大きなヘッダーで機能するはずです。

52
Martin

編集:ドキュメントはある時点で更新されており、以下の情報は当てはまりません。

UIRefreshControlドキュメントのAppleで指定されています。

注リフレッシュコントロールは、Table View Controllerによって管理されるTable Viewで使用するために特別に設計されているため、異なるコンテキストで使用すると、未定義の動作が発生する可能性があります。

VCがUITableViewControllerである場合、システムアプリとまったく同じように機能します。

0