Subview исчезают и исчезают помочь - PullRequest
4 голосов
/ 20 мая 2011

У меня проблема с исчезновением моего подпредставления.У меня нет проблем с постепенным исчезновением изображения, но с исчезновением ... просто оно исчезает.

-(void)flipToReview {
ReviewViewController *reviewVariable = [[ReviewViewController alloc] initWithNibName:@"ReviewViewController" bundle:nil];
[self setReviewViewController:reviewVariable];
self.ReviewViewController.view.alpha =0;
[UIView beginAnimations:@"flipview" context:nil]; 
[UIView setAnimationDuration:0.3];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:_window cache:YES];
[reviewVariable release];    
[self.window addSubview:self.ReviewViewController.view];
self.ReviewViewController.view.alpha =1;

[UIView commitAnimations];
}


-(void)flipBackFromReview {
//   self.ReviewViewController.view.alpha = 1;

[UIView beginAnimations:@"trip" context:nil]; 
[UIView setAnimationDuration:0.3];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];

[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:_window cache:NO];
self.ReviewViewController.view.alpha = 0;
[self.ReviewViewController.view removeFromSuperview];
[UIView commitAnimations];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
[self.ReviewViewController.view setHidden:1];
NSLog(@"remove subview"); 
}

Ответы [ 3 ]

7 голосов
/ 20 мая 2011

Попробуйте следующее:

[UIView animateWithDuration:3.0 delay:0.0
                    options:UIViewAnimationOptionAllowUserInteraction
                 animations:^{ ReviewViewController.view.alpha = 0.0;}
                 completion:^(BOOL fin) {
                 if (fin) [ReviewViewController.view removeFromSuperview];
                 }];
3 голосов
/ 20 мая 2011

Вам нужно переехать:

[self.ReviewViewController.view removeFromSuperview];

Это невозможно сделать «со временем» в анимации. Что вы хотите сделать, это переместить его в селектор и использовать setAnimationDelegate и setAnimationDidStopSelector. Поместите в свой блок анимации следующее:

[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(finshedFadeOut)];

Затем выполните следующий метод:

- (void)finshedFadeOut {
    [self.ReviewViewController.view removeFromSuperview];
}
1 голос
/ 20 мая 2011

У меня тоже была эта проблема, я обошел ее, изменив альфа на 0, вместо того, чтобы просто удалить вид. Это может быть анимировано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...