iOS 10.0 UIRefreshControl not showing indicator

before the code:

[refreshControl beginRefresh]

insert the code:

[refreshControl layoutIfNeeded]


Same as @jpros answer but in swift

if #available(iOS 10.0, *) {
    tableView.refreshControl = refreshControl
} else {
    tableView.addSubview(refreshControl)
}
refreshControl.layoutIfNeeded()
refreshControl.beginRefreshing()

Delaying call to refresh in viewDidLoad worked for me:

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self.refreshControl beginRefreshing];
});