UIRefreshControl beginRefreshing() 方法显示了活动指示器,但它没有进行动画。

4

我使用这段代码在第一次访问我的UIViewController时开始刷新。

var refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(self.loadPlayer), for: .valueChanged)

self.playersTable.addSubview(refreshControl) 
self.refreshControl.beginRefreshing()
self.loadPlayer()

调用函数loadPlayer并显示旋转图标,但问题是旋转图标没有任何动画效果,并且看起来很糟糕。有什么解决方法可以触发RefreshControl的valueChanged?

我已经尝试了另一段代码,但没有成功。

self.refreshControl.layoutIfNeeded()
self.refreshControl.beginRefreshing()
self.playersTable.setContentOffset(CGPoint(x: 0, y: -self.refreshControl.frame.size.height), animated: true)

我知道我可以使用UIActivityIndicatorView,并仅在第一次显示它,但为了效率,我能否只使用UIRefreshControl?

1个回答

0

我曾经遇到过完全相同的问题 - 对我有用的方法是将 self.refreshControl.beginRefreshing() 放在 viewWillAppear 中 -

- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.refreshController beginRefreshing]; }


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接