zoukankan      html  css  js  c++  java
  • 核心动画的使用

    1、启动动画

    • 1.1 CHWelcomeView.h

      @interface CHWelcomeView : UIView
      
      /// 创建欢迎视图
      + (instancetype)weicomeView;
      
      @end
      
    • 1.2 CHWelcomeView.m

      @interface CHWelcomeView ()
      
      @property (weak, nonatomic) IBOutlet UIImageView *backView;
      
      @property (weak, nonatomic) IBOutlet UIImageView *sloganView;
      
      @property (weak, nonatomic) IBOutlet UIImageView *iconView;
      
      @property (weak, nonatomic) IBOutlet UILabel *textView;
      
      @end
      
      @implementation CHWelcomeView
      
      /// 创建欢迎视图
      + (instancetype)weicomeView{
      	return [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil].firstObject;
      }
      
      /// 初始化
      - (void)awakeFromNib {
      	[super awakeFromNib];
      
      	self.backView.image = [UIImage imageNamed:@"ad_background"];
      
      	self.sloganView.image = [UIImage imageNamed:@"compose_slogan"];
      	self.iconView.image = [UIImage imageNamed:@"QianChia0123"];
      
      	self.textView.text = @"欢迎回来";
      }
      
      /// 已经添加到父视图上
      - (void)didMoveToSuperview {
      
      	[super didMoveToSuperview];
      
      	// 设置头像圆角
      	self.iconView.layer.cornerRadius = 50;
      	self.iconView.layer.masksToBounds = YES;
      
      	// 头像下移
      	self.iconView.transform = CGAffineTransformMakeTranslation(0, 50);
      
      	dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
      
      		[UIView animateWithDuration:1.0 animations:^{
      
      			// 文字图片慢慢消失
      			self.sloganView.alpha = 0;
      
      		} completion:^(BOOL finished) {
      
      			// 显示头像
      			self.iconView.hidden = NO;
      
      			[UIView animateWithDuration:1.0 delay:0 usingSpringWithDamping:0.3
      			initialSpringVelocity:0
      			options:UIViewAnimationOptionCurveLinear
      			animations:^{
      				// 头像往上移动的动画,弹簧效果
      				self.iconView.transform = CGAffineTransformIdentity;
      
      			} completion:^(BOOL finished) {
      
      				self.textView.alpha = 0;
      				self.textView.hidden = NO;
      
      				// 文字慢慢显示
      
      				[UIView animateWithDuration:0.5 animations:^{
      
      					// 欢迎回来 的文字慢慢显示
      					self.textView.alpha = 1;
      
      				} completion:^(BOOL finished) {
      
      					dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)),
      					dispatch_get_main_queue(), ^{
      
      						// 移除
      						[self removeFromSuperview];
      					});
      				}];
      			}];
      		}];
      	});
      }
      
      @end
      
    • 1.3 AppDelegate.m

      #import "CHWelcomeView.h"
      
      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      
      	// 创建窗口
      	self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
      	UIStoryboard *stroyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
      	UIViewController *vc = [stroyboard instantiateInitialViewController];
      	self.window.rootViewController = vc;
      	[self.window makeKeyAndVisible];
      
      	// 显示欢迎界面
      	CHWelcomeView *welcomeV = [CHWelcomeView weicomeView];
      	welcomeV.frame = self.window.bounds;                // 注意:一定要给界面设置 Frame
      	[self.window addSubview:welcomeV];
      
      	return YES;
      }
      
    • 1.4 效果

      • ------
  • 相关阅读:
    守望先锋-生涯数据信息抓取的实现
    Norm 数据库操作竟然可以如此简单
    java中关于转义字符的一个bug
    在Java中==的一个坑
    人机ai五子棋 ——五子棋AI算法之Java实现
    MySQL数据库罕见的BUG——Can't get hostname for your address
    [疑难杂症]__关于cmd命令正确而显示不是内部指令的错误(ps:已解决)
    [疑难杂症]__点击win10屏幕最上方的边界会莫名其妙打开Internet Explorer浏览器,不胜其烦(2次ps:已解决!!!).
    [Java初探外篇]__关于正则表达式
    [java初探外篇]__关于StringBuilder类与String类的区别
  • 原文地址:https://www.cnblogs.com/CH520/p/9483605.html
Copyright © 2011-2022 走看看