UIRefreshControl闪烁

时间:2015-03-16 19:07:09

标签: ios uitableview uirefreshcontrol

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

screen recording of flicker

这是我的应用程序的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方法。这似乎是明显的做法。

2 个答案:

答案 0 :(得分:5)

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

tableView.addSubview(refreshControl)

tableView.insertSubview(refreshControl, atIndex: 0)

感谢此评论:UIRefreshControl without UITableViewController

答案 1 :(得分:0)

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

类似的东西:

refreshControl.Superview.BackgroundColor = refreshControl.BackgroundColor