Appleによると、更新コントロールはiOS 11の大きなタイトルナビゲーションバーの一部である必要があります。
UITableViewControllerのストーリーボードで更新コントロールを有効にした場合、更新コントロールはナビゲーションバーの一部です(プルして更新)。
UICollectionViewControllerのような他のすべてのビューについて、ストーリーボードでこれを行うことはできません。サブビューとしてコードに更新コントロールを追加すると、ナビゲーションバーの一部ではなくなります。
refreshControl = UIRefreshControl()
collectionView?.addSubview(refreshControl)
ただし、次のようになります。
UICollectionViewControllerなどのカスタムスクロールビューに更新コントロールを追加して、大きなタイトルが使用されているときに更新コントロールがナビゲーションバーに表示されるようにするにはどうすればよいですか?
IOS 10現在、UITableView
およびUICollectionView
にはrefreshControl
プロパティがあります。
したがって、代わりに:
tableView.addSubview(refreshControl)
あなたがやる:
tableView.refreshControl = refreshControl
これはiOS 11の新しい大きなヘッダーで機能するはずです。
編集:ドキュメントはある時点で更新されており、以下の情報は当てはまりません。
UIRefreshControlドキュメントのAppleで指定されています。
注リフレッシュコントロールは、Table View Controllerによって管理されるTable Viewで使用するために特別に設計されているため、異なるコンテキストで使用すると、未定義の動作が発生する可能性があります。
VCがUITableViewControllerである場合、システムアプリとまったく同じように機能します。