在TabBarController项目中使用UIRefreshControl时位置错误

时间:2018-12-27 09:05:00

标签: ios swift uikit tableview uirefreshcontrol

我正在开发一个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
            }
        }
    }
}

当控制器位于选项卡栏中时,它的行为正确:当我打开页面时,在表格视图的标题中看到正在加载的微调器。

当我需要通过选项卡栏控制器中的“更多”页面时,碰巧刷新微调器位于标题和表格行之间。当它停止旋转并触发刷新时,它的位置正确,但是标题行和表行之间仍然有空白。

1 个答案:

答案 0 :(得分:0)

I answer my own question.

This has been discovered as a bug by Apple Code Level Support.