J'essaye d'animer le décalage d'une table vers le bas, puis dans le bloc d'achèvement je le remonte. Mais mon code ne fait rien dans le bloc d'achèvement:UIView Animer et terminer le bloc
-(void)viewDidAppear:(BOOL)animated {
if (TRUE) {
NSLog(@"animating table view");
[UIView animateWithDuration:.25
animations:^{
self.tableView.contentOffset = CGPointMake(self.tableView.contentOffset.x, self.tableView.contentOffset.y - 60);
}
completion:^(BOOL finished){
NSLog(@"completion block");
}];
}
}
"bloc d'achèvement" n'est jamais sorti ... des idées?
EDIT:
Ok, donc il a quelque chose à voir avec mon UIREfreshControl:
- (void)viewDidLoad
{
[super viewDidLoad];
if (TRUE) {
UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
[refresh addTarget:self action:@selector(refreshTableView:) forControlEvents:UIControlEventValueChanged];
[self setRefreshControl:refresh];
}
}
Lorsque la controll de rafraîchissement est ajouté, il ne se déclenche pas sur le bloc d'achèvement. Si je ne rajoute pas le contrôle, cela fonctionne comme prévu.
EDIT 2:
K, donc si je fais défiler l'affichage du tableau, le bloc d'achèvement est ensuite tiré:
2013-02-15 13:37:06.266 [1922:14003] animating table view
2013-02-15 13:37:14.782 [1922:14003] completion block
le code tel qu'il est écrit doit ouvrir une session "bloc d'achèvement" juste après « table animant voir ", mais il a un retard de 8 secondes parce que c'est quand je fais défiler la vue de la table moi-même.
comment le "Tirer pour Refresh" ressemble à:
juste tryed votre code sur le projet de test, et ' Vous avez essayé ceci sur le simulateur ou sur l'appareil Quelle version iOS vous avez utilisée, la version XCode? – jamapag
Simulator, iOS 6.1, xcode 4.6 Vous l'avez fait dans la méthode 'viewDidAppear:' – Padin215
Hmm, je J'ai la même configuration. Est-ce que 'viewDidAppear' est appelé? – jamapag