OC 中的 View Transition函数

首页 / iOS入门教程 / OC 中的 View Transition函数

View Transition是在适当的过渡动画效果下将一个视图添加到另一视图的有效方法。

更新ViewController.xib如下-

iOS Tutorial

为在xib中创建的按钮创建操作。

无涯教程网

更新ViewController.h

在ViewController类中声明两个视图。创建动作后, ViewController.h 文件将如下所示-

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
   UIView *view1;
   UIView *view2;
}

-(IBAction)flipFromLeft:(id)sender;
-(IBAction)flipFromRight:(id)sender;
-(IBAction)flipFromTop:(id)sender;
-(IBAction)flipFromBottom:(id)sender;
-(IBAction)curlUp:(id)sender;
-(IBAction)curlDown:(id)sender;
-(IBAction)dissolve:(id)sender;
-(IBAction)noTransition:(id)sender;

@end

更新ViewController.m

无涯教程将添加一个自定义方法 setUpView 来初始化视图。无涯教程还创建了另一个方法 doTransitionWithType:,该方法创建从 view1 到 view2 的转换,反之亦然。然后,无涯教程将实现之前创建的操作方法,该方法将使用过渡类型调用doTransitionWithType:方法。更新后的 ViewController.m 如下-

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
   [super viewDidLoad];
   [self setUpView];
   //在加载视图后进行任何额外的设置,通常是从一个 nib 开始。
}

-(void)setUpView {
   view1 = [[UIView alloc]initWithFrame:self.view.frame];
   view1.backgroundColor = [UIColor lightTextColor];
   view2 = [[UIView alloc]initWithFrame:self.view.frame];
   view2.backgroundColor = [UIColor orangeColor];
   [self.view addSubview:view1];
   [self.view sendSubviewToBack:view1];
}

-(void)doTransitionWithType:(UIViewAnimationTransition)animationTransitionType {
   if ([[self.view subviews] containsObject:view2 ]) {
      [UIView transitionFromView:view2
      toView:view1
      duration:2
      options:animationTransitionType
      completion:^(BOOL finished) {
         [view2 removeFromSuperview];
      }];
      [self.view addSubview:view1];
      [self.view sendSubviewToBack:view1];
   } else {
      [UIView transitionFromView:view1
      toView:view2
      duration:2
      options:animationTransitionType
      completion:^(BOOL finished) {
         [view1 removeFromSuperview];
      }];
      [self.view addSubview:view2];
      [self.view sendSubviewToBack:view2];
   }
}

-(IBAction)flipFromLeft:(id)sender {
   [self doTransitionWithType:UIViewAnimationOptionTransitionFlipFromLeft];
}

-(IBAction)flipFromRight:(id)sender {
   [self doTransitionWithType:UIViewAnimationOptionTransitionFlipFromRight];
}

-(IBAction)flipFromTop:(id)sender {
   [self doTransitionWithType:UIViewAnimationOptionTransitionFlipFromTop];
}

-(IBAction)flipFromBottom:(id)sender {
   [self doTransitionWithType:UIViewAnimationOptionTransitionFlipFromBottom];
}

-(IBAction)curlUp:(id)sender {
   [self doTransitionWithType:UIViewAnimationOptionTransitionCurlUp];
}

-(IBAction)curlDown:(id)sender {
   [self doTransitionWithType:UIViewAnimationOptionTransitionCurlDown];
}

-(IBAction)dissolve:(id)sender {
   [self doTransitionWithType:UIViewAnimationOptionTransitionCrossDissolve];
}

-(IBAction)noTransition:(id)sender{
   [self doTransitionWithType:UIViewAnimationOptionTransitionNone];
}

- (void)didReceiveMemoryWarning {
   [super didReceiveMemoryWarning];
   //Dispose of any resources that can be recreated.
}
@end

运行应用程序时,将获得以下输出-

iOS Tutorial

您可以选择不同的按钮来查看过渡的工作方式。选择卷曲时,过渡将如下所示:

链接:https://www.learnfk.comhttps://www.learnfk.com/ios/ios-ui-elements-view-transition.html

来源:LearnFk无涯教程网

iOS Tutorial

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Java核心技术面试精讲 -〔杨晓峰〕

React实战进阶45讲 -〔王沛〕

软件测试52讲 -〔茹炳晟〕

深入浅出计算机组成原理 -〔徐文浩〕

Java性能调优实战 -〔刘超〕

Vim 实用技巧必知必会 -〔吴咏炜〕

容器实战高手课 -〔李程远〕

人人都用得上的数字化思维课 -〔付晓岩〕

零基础学Python(2023版) -〔尹会生〕

好记忆不如烂笔头。留下您的足迹吧 :)