RefreshControl
を使用してプルツーリフレッシュ動作を実装するために、これを tutorial を使用しています。 Navigation Bar
を使用しています。通常のタイトルを使用すると、すべてが正常に機能します。ただし、「大きなタイトルを優先する」を使用する場合、次のビデオでわかるように正しく機能しません。誰もが理由を知っていますか?ビデオ間の唯一の変更は、「大規模なタイトルを優先する」のストーリーボードチェックです。
最後に私のために働いたのは:
RefreshControlの進行状況バーが大きなタイトルで消えるバグを修正するには:
_self.extendedLayoutIncludesOpaqueBars = true
_
refreshcontrol.endRefreshing()
の後のリストオフセットを修正するには:
_let top = self.tableView.adjustedContentInset.top
let y = self.refreshControl!.frame.maxY + top
self.tableView.setContentOffset(CGPoint(x: 0, y: -y), animated:true)
_
_tableView.tableHeaderView = refreshControl
_またはtableView.addSubView(refreshControl)
を使用していた場合は、_tableView.refreshControl = refreshControl
_を使用してみてください。
これを引き起こす可能性のあるさまざまな原因があるようです。私にとっては、ViewController内にTableViewが埋め込まれていました。 テーブルビューのトップレイアウトガイドを0のスーパービューに設定します。 RefreshControlの最後の編集を遅延ブロックでラップするまで、それでも何も起こりません。
DispatchQueue.main.async {
if self.refreshControl.isRefreshing {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {
self.refreshControl.endRefreshing()
})
}
}
XIBを使用して私のために働いた唯一の解決策はブルーノのものでした: https://stackoverflow.com/a/54629641/2178888
ただし、XIBを使用したくありませんでした。 AutoLayoutを使用したコードでこの機能を実現しようとして、私は多くの苦労をしました。
私は最終的に機能するソリューションを見つけました:
override func loadView() {
super.loadView()
let tableView = UITableView()
//configure tableView
self.view = tableView
}