UIRefreshControl闪烁

Kil*_*ian 1 uitableview ios uirefreshcontrol

我在iOS 8下实现UIRefreshControl时遇到了一种闪烁.每次我第一次来到tableView的顶部(意思是应用程序刚启动时),我看到下面的gif中显示的闪烁.这种情况不会发生在我后来到tableView顶部的任何时候,直到再次加载此视图,所以在我在应用程序的另一个视图中执行某些操作或完全重新启动它之后.

屏幕录制闪烁

这是我的应用程序的viewDidLoad()中的代码:

let refreshControl = UIRefreshControl()

override func viewDidLoad() {
    super.viewDidLoad()

    // Doing this here to prevent the UIRefreshControl sometimes looking messed up when waking the app
    self.refreshControl.endRefreshing()

    updateData()

    refreshControl.backgroundColor = UIColor(hue: 0.58, saturation: 1.0, brightness: 0.43, alpha: 1.0)
    refreshControl.tintColor = UIColor.whiteColor()
    refreshControl.addTarget(self, action: "updateData", forControlEvents: UIControlEvents.ValueChanged)
    tableView.addSubview(refreshControl)
}
Run Code Online (Sandbox Code Playgroud)

refreshControl在viewDidLoad()函数之外声明,因为我想从updateData()函数中调用endRefreshing方法.这似乎是明显的做法.

Kil*_*ian 5

我能够通过更改以下行来解决这个问题

tableView.addSubview(refreshControl)
Run Code Online (Sandbox Code Playgroud)

tableView.insertSubview(refreshControl, atIndex: 0)
Run Code Online (Sandbox Code Playgroud)

感谢这个评论:没有UITableViewController的UIRefreshControl