2013-10-23 30 views
5

Se UIRefreshControl viene avviato a livello di codice, (beginRefreshing e endRefreshing) quando non è visibile, si verificherà uno sfarfallio continuo nell'animazione UIRefreshControl al prossimo aggiornamento manuale.Sfarfallio UIRefreshControl in iOS7

Aggiungi questo metodo in UITableViewController sottoclasse e fare un tiro per rinfrescarsi dopo 2 secondi e vedrete il guizzo

-(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]; 
    }); 
} 

Come evitare questo sfarfallio?

+1

Presumo che sia un bug. Ho sperimentato lo stesso comportamento qualche giorno fa –

+0

Guarda l'app di posta (almeno su iPad), aggiorna anche i flicker di controllo se avvii l'aggiornamento e poi tiri di nuovo. –

risposta

0

Inserire il codice in viewDidLoad o viewWillAppear anziché viewDidAppear.

Inoltre, puoi dirmi il ragionamento alla base del codice inserito nel metodo viewDidAppear, anziché viewDidLoad o viewWillAppear?

+0

Nessun motivo specifico, lo stavo provando in un'app campione. Anche in vistaWillAppear ci sarà questo sfarfallio! – 8suhas