【发布时间】:2018-12-27 09:04:59
【问题描述】:
我正在开发一个 iOS 应用程序,它有一个带有 7 个视图控制器的“主”TabBarController。 每个视图控制器都是以 TableViewController 为根的 NavigationViewController。
每个 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
}
}
}
}
当控制器在标签栏中时,它的行为是正确的:当我打开页面时,我在表格视图的标题中看到加载微调器。
当我需要通过标签栏控制器中的“更多”页面时,刷新微调器恰好位于标题和表格行之间。当它停止旋转并触发刷新时,它会位于正确的位置,但标题行和表格行之间仍有空白。
【问题讨论】:
标签: ios swift uikit tableview uirefreshcontrol