J'ai une méthode qui anime l'un des sous-vues de UIWindow
, puis le supprime de UIWindow
en utilisant removeFromSuperview
. Mais quand je mets removeFromSuperview
après le bloc d'animation, l'animation ne montre jamais, parce que removeFromSuperview
enlève le UIView
de UIWindow
avant que l'animation ne joue :-(Comment puis-je retarder removeFromSuperview
pour que l'animation joue d'abord, puis la sous-vue est supprimée? J'ai essayé [NSThread sleepForTimeInterval:1];
après l'animation bloc, mais qui n'a pas eu l'effet désiré, car l'animation dort trop pour une raison quelconqueUIView removeFromSuperView délai d'animation
Mon code pour cette méthode.
- (void) animateAndRemove
{
NSObject *mainWindow = [[UIApplication sharedApplication] keyWindow];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.8];
UIView *theView = nil;
for (UIView *currentView in [mainWindow subviews])
{
if (currentView.tag == 666)
{
currentView.backgroundColor = [UIColor colorWithRed:0.8 green:0.8 blue:0.8 alpha:0.0];
theView = currentView;
}
}
[UIView setAnimationTransition: UIViewAnimationTransitionNone forView:theView cache:YES];
[UIView commitAnimations];
//[NSThread sleepForTimeInterval:1];
[theView removeFromSuperview];
}
Wow, qui a fonctionné comme un charme! incroyable! merci – Mike
Ceci est une bonne solution. Dommage que ce ne soit pas accepté. Up! – mtrc