如何在 iOS 中为两个 UIView 翻转设置动画?

Posted

技术标签:

【中文标题】如何在 iOS 中为两个 UIView 翻转设置动画?【英文标题】:How to animate two UIView flip in iOS? 【发布时间】:2015-08-06 07:49:12 【问题描述】:

在我的主 ViewController 中,我有 2 个 UIView,分别命名为 AppointmentView 和 BookView,并且我在两个 UIView 上都放置了一个 UIButton,点击时我需要翻转每个视图。

我已经添加了下面的代码,但问题是当我点击 UIButton 时它会翻转并进入同一页面(而不是第二个视图)。

请帮帮我

 [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.0];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.bookAppointmentView cache:YES];
    [self.view addSubview:self.bookAppointmentView];

    [UIView commitAnimations];

更新代码

- (IBAction)addnewPatient:(id)sender 
    self.createNewPatientView.hidden=NO;
    self.bookAppointmentView.hidden=YES;
    self.createNewPatientView.backgroundColor=[UIColor colorWithRed:254.0/255.0 green:254.0/255 blue:254.0/255 alpha:1];
    self.createNewPatientView.layer.cornerRadius=5;
    self.createNewPatientView.layer.masksToBounds=YES;

    [UIView transitionFromView:self.bookAppointmentView toView:self.createNewPatientView duration:.6 options:(UIViewAnimationOptionTransitionFlipFromLeft  | UIViewAnimationOptionShowHideTransitionViews) completion:^(BOOL finished)
     
         //completion code goes here
     ];


- (IBAction)existingPatient:(id)sender 
    self.bookAppointmentView.hidden=NO;
    self.createNewPatientView.hidden=YES;
    [UIView transitionFromView:self.createNewPatientView toView:self.bookAppointmentView duration:.6 options:(UIViewAnimationOptionTransitionFlipFromLeft  | UIViewAnimationOptionShowHideTransitionViews) completion:^(BOOL finished)
     
         //completion code goes here
     ];


【问题讨论】:

【参考方案1】:

您最好使用以下动画块来执行此操作:

[UIView transitionFromView:view1 toView:view2 duration:.3 options:(UIViewAnimationOptionTransitionFlipFromLeft  | UIViewAnimationOptionShowHideTransitionViews) completion:^(BOOL finished) 
    
            //completion code goes here 
    ];

干杯!

【讨论】:

它的翻转但非常快但不会回来......当我点击 secondview 中的按钮翻转它的翻转并且第一个视图没有显示时 是的,翻转正在工作,但它翻转了整个视图控制器。有没有办法只翻转这两个视图? 您应该将view1 替换为您的AppointmentView,并将view2 替换为BookView,并且一切正常。 view1view2 是我的示例代码中传递给动画方法的参数。不要将self.view 作为参数传递给该方法。 当使用动画的UIViewAnimationOptionShowHideTransitionViews 选项时,您不必手动隐藏视图。删除self.bookAppointmentView.hidden=NO; self.createNewPatientView.hidden=YES; 但这并不能解决我的问题,它仍然会翻转整个视图控制器

以上是关于如何在 iOS 中为两个 UIView 翻转设置动画?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中多次为 UIView 的翻转设置动画

如何使用 Facebook PoP ios 框架水平翻转 UIView?

如何在 iOS 中为自定义属性设置动画

在 iOS 中为 UIImageView 以外的东西设置内容模式

如何在 iOS 中为表格视图和滚动视图设置偏移量,以便两者一起滚动

如何使用自动布局在 UIScrollView 中为视图高度设置动画?