J'essaye d'animer un UIView pour glisser à gauche et à droite. Ce que j'ai essayé est de prendre une capture d'écran de la vue actuelle, que de remplacer la vue avec la capture d'écran tout en mettant à jour le contenu de la vue hors écran, puis en faisant l'animation. Mais la capture d'écran n'apparaît pas sur l'écran. Il est juste noir jusqu'à ce que la vue d'origine revienne à l'écran. Voici le code que je utilise:Glisser un UIView à gauche et à droite
UIGraphicsBeginImageContext(self.view.window.frame.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.frame.size.width, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)];
iv.image = image;
[self.view.window insertSubview:iv aboveSubview:self.view];
self.view.frame = CGRectMake(-self.view.frame.size.width, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
[UIView transitionWithView:self.view duration:0.5 options:UIViewAnimationOptionCurveEaseInOut animations:^{
iv.frame = CGRectMake(self.view.frame.size.width*2, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
[self loadData];
self.view.frame = CGRectMake(0, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
} completion:NULL];
[iv removeFromSuperview];
[iv release];
Pouvez-vous poster le code final? Je suis votre conseil, mais rencontre toujours le problème que vous décrivez (screenshot n'apparaissant pas). – user664939
@ user664939 Honnêtement, je n'ai aucune idée de ce que j'ai utilisé pour cela. Mais à en juger par ma réponse, vous pouvez simplement ajouter un bloc d'achèvement pour supprimer la vue. – edc1591
Merci d'avoir répondu à mon commentaire. J'ai réussi à le faire fonctionner en fonction de cela et de quelques autres questions. – user664939