UIView transitionFromView изменить высоту просмотра
Я использую этот код для переключения между 2 UIView
:
UIViewAnimationOptions animationType = UIViewAnimationOptionTransitionFlipFromLeft;
[UIView transitionFromView:self.playlistTableView toView:self.playerView duration:0.5 options:animationType completion:^(BOOL finished){
[self.containerView sendSubviewToBack:self.upperView];
[self.containerView sendSubviewToBack:self.playerView];
self.isPlaylistVisible = !self.isPlaylistVisible;
isControlsHidden = NO;
}];
И я заметил странное поведение, что, когда я сделал флип, высота self.playerView
потеря 20px и через одну секунду он снова увеличивается до нормального размера кадра.
Я пытаюсь изменить animationType
в UIViewAnimationOptionLayoutSubviews
и теперь, когда я переключаюсь между представлениями, это поведение не происходит. Есть идеи, в чем может быть проблема?
1 ответ
Пожалуйста, попробуйте этот код.
[self.upperView setHidden:YES];
[self.playerView setHidden:NO];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:containerView cache:YES];
[UIView setAnimationDuration:1.0];
[UIView commitAnimations];
[containerView addSubview:self.playerView];
Для получения обратного случая
[self.upperView setHidden:NO];
[self.playerView setHidden:YES];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:containerView cache:YES];
[UIView setAnimationDuration:1.0];
[UIView commitAnimations];
[containerView addSubview:self.upperView];