【发布时间】:2026-01-08 02:45:01
【问题描述】:
如果 UIRefreshControl 以编程方式启动,(beginRefreshing 然后 endRefreshing )当它不可见时,那么在下次手动刷新时 UIRefreshControl 动画中会持续闪烁。
在 UITableViewController 子类中添加这个方法并在 2 秒后拉动刷新,你会看到闪烁
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
UIRefreshControl * refreshControl = [[UIRefreshControl alloc] init];
self.refreshControl = refreshControl;
[self.refreshControl beginRefreshing];
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW,
(int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self.refreshControl endRefreshing];
});
}
如何避免这种闪烁?
【问题讨论】:
-
我认为这是一个错误。几天前我遇到了同样的行为
-
查看邮件应用程序(至少在 iPad 上),如果您开始更新然后再次拉动,刷新控件也会在那里闪烁。
标签: ios ios7 uitableview flicker uirefreshcontrol