通过翻转到iOS中的另一个子视图来动画子视图

时间:2012-06-13 17:43:37

标签: ios animation subview

我有一个视图,其中有2个子视图隐藏在屏幕下方。我目前设置的是当用户单击主视图中的按钮时,它会在顶部为两个子视图设置动画。当发生这种情况时,只显示其中一个子视图而另一个在其后面。

我想要做的是当两个子视图出现时,当用户点击子视图中的按钮时,它应该翻转到另一个视图。但是,当我试图完成这一切时,没有任何反应。下面是我在第一个子视图的按钮TouchUpInside内使用的代码片段:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.StatisticsScreen cache:true];
[UIView commitAnimations];

非常感谢任何建议。

3 个答案:

答案 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的唯一效果是更改子视图顺序。