У меня есть CollectionView
с Header
, и я хочу добавить RefreshController
к CollectionView
, что я уже сделал. Он показывает выше Header
, как я и ожидал. Однако я хочу, чтобы RefreshController
показывал в Header
.
Причина этого в том, что Toolbar
покрывает Заголовок. Когда я опускаю вниз, чтобы обновить, Header
становится видимым так, как я хочу, чтобы RefreshController
был видимым. Но мне нужно было бы опустить высоту Header
, чтобы сделать видимым RefreshController
, а это
а) слишком большое расстояние для прокрутки и
б) слишком много места между RefreshController
и CollectionView
Вот код:
var refreshControl = UIRefreshControl()
override func viewDidLoad() {
super.viewDidLoad()
[...]
refreshControl.tintColor = .gray
refreshControl.backgroundColor = .white
refreshControl.addTarget(self, action: #selector(refreshContents), for: .valueChanged)
eventCollectionView.refreshControl = refreshControl
eventCollectionView.register(EventHeaderView.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: toolbarId)
}
@objc func refreshContents() {
self.perform(#selector(finishedRefreshing), with: nil, afterDelay: 1.5)
}
@objc func finishedRefreshing() {
refreshControl.endRefreshing()
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
return .init(width: screenWidth, height: 50)
}