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) } 

refreshControl被声明在viewDidLoad()函数之外,因为我想从我的updateData()函数中调用endRefreshing方法。 这似乎是这样做的显而易见的方式。

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

 tableView.addSubview(refreshControl) 

 tableView.insertSubview(refreshControl, atIndex: 0) 

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

将UIRefreshControl的父视图的背景颜色更改为与UIRefreshControl的背景颜色相同。

就像是:

refreshControl.Superview.BackgroundColor = refreshControl.BackgroundColor