0

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

我想要做的是当两个子视图出现时,当用户单击子视图中的按钮时,它应该翻转到另一个视图。但是,当我尝试完成此操作时,什么也没有发生。下面是我TouchUpInside在第一个子视图的按钮中使用的代码片段:

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

任何意见是极大的赞赏。

4

3 回答 3

1

我也有类似方法的问题。我所做的是以编程方式创建一个UIView(称为panelView),在其中添加了我需要翻转的两个视图,然后在按下按钮时添加:

[UIView transitionWithView:self.panelView 
                      duration:0.5f 
                       options:UIViewAnimationOptionTransitionFlipFromRight 
                    animations:^{

                        [self.view1 removeFromSuperview];
                        [self.panelView addSubview:self.view2];

                    } completion:nil];
于 2012-06-13T18:20:26.087 回答
1

将两个 Subviews 添加到 Superview 中,将一个 subview 设置为隐藏,以及以下代码

    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];
}
于 2016-05-30T10:35:46.070 回答
0

尝试这样做:

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

[view addSubview:theViewYouWantToAppear];

[UIView commitAnimations];

当然,已经添加了子视图,所以调用的唯一效果addSubview就是改变子视图的顺序。

于 2012-06-13T17:59:56.723 回答