UILefreshControl在iOS7中闪烁

8su*_*has 6 flicker uitableview ios uirefreshcontrol ios7

如果UIRefreshControl以编程方式启动(beginRefreshing然后endRefreshing),当它不可见时,则在下次手动刷新时UIRefreshControl动画中会有连续的闪烁.

在UITableViewController子类中添加此方法,并在2秒后执行pull刷新,您将看到闪烁

-(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];
    });
}
Run Code Online (Sandbox Code Playgroud)

如何避免这种闪烁?

Tre*_*ree 0

将代码放在 viewDidLoad 或 viewWillAppear 中,而不是 viewDidAppear 中。

另外,您能告诉我将代码放入 viewDidAppear 方法而不是 viewDidLoad 或 viewWillAppear 背后的原因吗?