我有一个视图,其中有2个子视图隐藏在屏幕下方。我目前设置的是当用户单击主视图中的按钮时,它会在顶部为两个子视图设置动画。当发生这种情况时,只显示其中一个子视图而另一个在其后面。
我想要做的是当两个子视图出现时,当用户点击子视图中的按钮时,它应该翻转到另一个视图。但是,当我试图完成这一切时,没有任何反应。下面是我在第一个子视图的按钮TouchUpInside
内使用的代码片段:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.StatisticsScreen cache:true];
[UIView commitAnimations];
非常感谢任何建议。
答案 0 :(得分:1)
我也有类似方法的问题。我所做的是以编程方式创建UIView
(称为panelView
),其中我添加了我需要翻转的两个视图,然后按下按钮时:
[UIView transitionWithView:self.panelView
duration:0.5f
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^{
[self.view1 removeFromSuperview];
[self.panelView addSubview:self.view2];
} completion:nil];
答案 1 :(得分:1)
将两个子视图添加到Superview,将一个子视图设置为隐藏,以及以下代码
if(!isSelected){
isSelected = YES;
[UIView transitionWithView:superview
duration:1.0f
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^{
[subview1 setHidden:YES];
[subview2 setHidden:NO];
} completion:nil];
}else{
isSelected = NO;
[UIView transitionWithView:superview
duration:1.0f
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^{
[subview1 setHidden:NO];
[subview2 setHidden:YES];
} completion:nil];
}
答案 2 :(得分:0)
尝试这样做:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.StatisticsScreen cache:true];
[view addSubview:theViewYouWantToAppear];
[UIView commitAnimations];
当然,子视图已经添加,因此调用addSubview
的唯一效果是更改子视图顺序。