Я разрабатываю приложение для iOS, которое имеет «основной» TabBarController с 7 контроллерами представления.Каждый контроллер представления представляет собой NavigationViewController с корневым элементом TableViewController.
Каждый TableViewController имеет UIRefreshControl, настроенный с использованием раскадровки.
override func viewDidLoad() {
super.viewDidLoad()
self.title = "12345678".localized
self.navigationController?.navigationBar.tintColor = Customizer.getColor1()
self.navigationController?.navigationBar.prefersLargeTitles = true
self.refreshControl?.tintColor = Customizer.getColor1()
self.refreshControl?.beginRefreshing()
self.doRefresh(0)
}
@IBAction func doRefresh(_ sender: Any) {
let d : AppDelegate = self.appDelegate
DispatchQueue.global(qos: .background).async {
BeautifulAPI().getBeautifulData(delegate: d) { (result: Result<[EBListItem]>) in
switch result{
case .success(let data):
self.items = data
self.done_loading()
break
case .failure(let statusCode, let error):
print("Error \(statusCode) : \(String(describing: error))")
break
}
}
}
}
Когда контроллер находится на панели вкладок, он работает правильно: когда я открываю страницу, я вижу загрузочный счетчик в заголовке табличного представления.
Когда мне нужно пройти через страницу «Дополнительно» в контроллере панели вкладок, случается, что спиннер обновления находится междузаголовок и строки таблицы.Когда он перестает вращаться и я запускаю обновление, он попадает в правильную позицию, но у меня все еще есть свободное пространство между заголовком и строками таблицы.