2013-10-23 7 views
5

Wenn UIRefreshControl programmgesteuert (beginRefreshing und dann endRefreshing) gestartet wird, wenn es nicht sichtbar ist, dann würde bei der nächsten manuellen Aktualisierung ein kontinuierliches Flimmern in der UIRefreshControl-Animation auftreten.UIRefreshControl flimmern in iOS7

diese Methode in UITableViewController Unterklasse hinzufügen und einen Pull tun nach 2 Sekunden zu aktualisieren, und Sie werden das Flackern

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

Wie kann man vermeiden diese flackern sehen?

+1

Ich nehme an, es ist ein Fehler. Ich habe das gleiche Verhalten vor ein paar Tagen erlebt –

+0

Schauen Sie sich Mail-App (zumindest auf dem iPad), aktualisieren Sie die Steuerung flackert auch dort, wenn Sie Update starten und dann wieder ziehen. –

Antwort

0

Setzen Sie Ihren Code in die ViewDidLoad oder ViewWillAppear statt ViewDidAppear.

Kannst du mir auch die Gründe dafür nennen, den Code in die viewDidAppear-Methode zu setzen, statt viewDidLoad oder viewWillAppear?

+0

Kein spezifischer Grund, ich habe es in einer Beispiel-App versucht. Auch in ViewWillAppear wird dieses Flackern da sein! – 8suhas