任何新闻暂未透露

2020-03-01 00:43 来源:未知

  小说《Clione的电灯的光》整编电视机动漫,二零一七年11月开始播放!动漫主旨曲由aki担任演唱,别的还应该有一张宣传图公开。别的音信暂未发表。

在开头读书Core Animation提供的layer的隐式动漫和layer的显式动漫以前,我们先来总计一下UIView block动画,因为:

  • 在事实上支付中大家用的最多的照旧view,实际不是layer,所以更加多处境下一旦大家要做动漫的话,用的依旧UIView block动漫,并不是layer的隐式动漫和出示动画;
  • 此地计算一下,能够实惠大家在末端两篇学习layer的隐式动漫和显式动漫时作对照,以期加深对动漫的敞亮。

目录

一、UIView可动漫属性列表

二、什么是UIView block动画?

1、UIView block动漫的定义、本质及能做什么样动漫
2、UIView block动漫的归类
(1)UIView block底子动漫(UIView block属性动画的一种)
①怎么是UIView block幼功动漫?
②什么利用UIView block根基动漫?
(2)UIView block关键帧动漫(UIView block属性动漫的一种)
①怎么着是UIView block关键帧动漫?
②哪些接收UIView block关键帧动漫?
(3)UIView block过渡动漫
①如何是UIView block过渡动漫?
②怎么样利用UIView block过渡动漫?

三、如何行使UIView block动漫?(应用比如)

1、UIView block底子动画比方
2、UIView block关键帧动漫比方
3、UIView block过渡动漫比方

一、UIView可动漫属性列表

最普通的属性 说明
backgroundColor --
frame 改位置和大小,一般使用transform的平移和缩放来代替
bounds 改大小,一般使用transform的缩放来代替
center 改位置,一般使用transform的平移来代替
显隐性属性 说明
hidden 注意这个属性不支持动画,最简单的可以通过alpha或背景色来代替实现
alpha --
仿射变换属性 说明
transform 可用来做view的平移、缩放、旋转动画

二、什么是UIView block动画?

1、UIView block动漫的概念、本质及能做哪些动漫
  • 定义:UIView block动漫正是用来在view层做动漫的一种动漫机制

  • 本质:UIView block动漫的面目就是对layer的隐式动漫或显式动漫做了一层封装,提供简单的Api,方便大家开荒者使用。具体来讲UIView block幼功动漫是对layer的隐式动漫做了包装(因为它们相仿可以安装过渡效果/图层行为,展现动漫的底子动漫无法安装图层行为,当然显式动漫的接入动漫也得以作用于可动画属性,然则前边讲到隐式动漫应该会了解UIView block功底动画是对layer的隐式动漫做了打包),UIView block关键帧动画是对layer的呈现动漫的尤为重要帧动漫做了打包,UIView block过渡动漫是对layer的显得动漫的对接动漫做了包装。

  • 能做哪些动画:

    • 下边大家会波及UIView block动漫可分为UIView block属性动漫和UIView block过渡动漫,而UIView block属性动画又可分为UIView block底工动漫和UIView block关键帧动漫。

    • UIView block属性动漫能做哪些动漫:那么从UIView的可动漫属性列表大家得以看出,UIView block属性动漫能够用来对view做背景色变化的卡通、view显隐性别变化化的卡通以至view的移位、缩放和旋转的仿射转换动漫三种情景下的卡通,个中执行二遍UIView block功底动画只可以更改七个属性值壹次,试行一遍UIView block关键帧动漫能够安装八个第一帧所以能更动一个属性值数十次

    • UIView block过渡动漫能做哪些动漫:UIView block属性动漫只好对UIView的可动漫属性做动漫,然而要是咱们以往想要对view的非动漫属性别变化更时(如label的文本,imageView的图纸等)做动漫,以至是对view的少数行为(如view的增加和移除,八个view之间切换)做动漫,那就只可以使用过渡动漫了。

  • 由此大家也就知道了怎么要引进UIView block动漫:
    • 第一、当然就是UIView block动漫是成效于view层,对layer的隐式动漫或显式动漫做了一层封装,提供轻巧的Api,方便大家开拓者使用;
    • 第二、UIView block属性动漫能够帮忙我们在改动view的可动漫属性时能做动漫效果。假若见到后边一篇隐式动漫,大家会知晓在转移layer的可动画属性时,纵然大家怎么样都不做直接改革layer的属性值,这些退换的进度也会暗中认可有多少个动漫,它正是隐式动漫;不过当大家在转移view的可动画属性时,是没有隐式动漫的,假若大家什么样都不做,属性就能够一直跳变到新值,所感到了到达改动view的性情时能有动漫,大家就得利用UIView block动漫来贯彻了。
    • 其三、UIView block过渡动漫能够协助大家在改进view的不行变属性或许对view做一些行为能做动漫。
2、UIView block动漫的分类

UIView block动漫可分为UIView block属性动漫和UIView block过渡动漫,而UIView block属性动漫又可分为UIView block根底动画和UIView block关键帧动漫,接下去大家将分头介绍UIView block底子动漫UIView block关键帧动画UIView block过渡动漫

(1)UIView block功底动漫
①怎样是UIView block根基动漫?

UIView block幼功动漫是UIView block属性动漫的一种,它用来对view的可动漫属性做动漫,不过实践壹次UIView block幼功动画只可以改换一个属性值一次,因为我们是三遍性把属性值直接设置为目的值的(即便要想改动多次性质的值,可以在动画结束后再起来叁个功底动漫再改二次属性值,如此生生不息,但有一个更简便的主意正是使用UIView block关键帧动漫,前面会谈到)它根本分上边二种:

  • 最精练的block底工动漫
[UIView animateWithDuration:// 动画时长
                 animations:^{

                     // 要改变的属性
                 }];
  • 带来画完了回调的block幼功动漫
[UIView animateWithDuration:// 动画时长
                 animations:^{

                     // 要改变的属性
                 } completion:^(BOOL finished) {

                     // 动画完成的回调
                 }];
  • 可设置延时和自定义动漫过渡效果的block底蕴动漫
[UIView animateWithDuration:// 动画时长
                      delay:// 延时多长时间后开始执行动画
                    options:// 可自定义动画的过渡效果,来替换掉系统默认的平滑过渡效果
                 animations:^{

                     // 要改变的属性
                 } completion:^(BOOL finished) {

                     // 动画完成的回调
                 }];

UIView block底子动漫自定义过渡效果(UIViewAnimationOptions)枚举值如下:

  • 诚如就设置下连通动漫效果和接通动漫时间曲线就足以了;

  • 假使和前边layer显式动漫的连结动漫的type和subType相比较一下,会意识此处的联网动漫效果是把layer显式动画的接入动漫的type和subType组合起来了,并且这里的连片动漫效果要比layer显式动漫的连接动漫的职能少得多,独有淡入淡出、正面背面二维翻转、翻页效果三种而已。

UIViewAnimationOptionTransitionNone// 过渡动画效果:不使用过渡动画
UIViewAnimationOptionTransitionCrossDissolve//过渡动画效果:淡入淡出效果,和显示动画的过渡动画的“fade”一样
UIViewAnimationOptionTransitionFlipFromTop// 过渡动画效果:正面和背面的二维翻转效果,从上向下翻转
UIViewAnimationOptionTransitionFlipFromLeft// 过渡动画效果:正面和背面的二维翻转效果,从左向右翻转
UIViewAnimationOptionTransitionFlipFromBottom// 过渡动画效果:正面和背面的二维翻转效果,从下向上翻转
UIViewAnimationOptionTransitionFlipFromRight//过渡动画效果:正面和背面的二维翻转效果,从右向左翻转
UIViewAnimationOptionTransitionCurlUp// 过渡动画效果:翻页效果,从下往上翻页
UIViewAnimationOptionTransitionCurlDown// 过渡动画效果:翻页效果,从上往下翻页

UIViewAnimationOptionCurveEaseInOut// 过渡动画的缓冲曲线:动画慢进,逐渐加快,逐渐减慢,慢出(默认值)
UIViewAnimationOptionCurveEaseIn// 过渡动画的缓冲曲线:动画慢进,逐渐加快
UIViewAnimationOptionCurveEaseOut// 过渡动画的缓冲曲线:动画逐渐减慢,慢出
UIViewAnimationOptionCurveLinear// 过渡动画的缓冲曲线:动画匀速

UIViewAnimationOptionRepeat// 重复执行动画
UIViewAnimationOptionAllowUserInteraction// 执行动画期间,开启view的用户交互

UIViewAnimationOptionAutoreverse// 执行动画回路
UIViewAnimationOptionLayoutSubviews// 执行动画时布局子控件
UIViewAnimationOptionAllowAnimatedContent// 执行动画时重绘视图
UIViewAnimationOptionBeginFromCurrentState// 从当前状态开始执行动画
UIViewAnimationOptionShowHideTransitionViews// 显示视图时显示或隐藏而不是移除或添加
UIViewAnimationOptionOverrideInheritedOptions// 不继承父动画设置
UIViewAnimationOptionOverrideInheritedCurve// 忽略嵌套动画的曲线设置
UIViewAnimationOptionOverrideInheritedDuration// 忽略嵌套动画的执行时间设置
  • Spring动画:正是指在改动属性的时候,属性值会在目的值周围摆动,相同弹簧那种的弹性动漫
[UIView animateWithDuration:// 动画时长
                      delay:// 延时多长时间后开始执行动画
     usingSpringWithDamping:// 弹性效果的阻尼:范围0~1,数值越小弹性效果越明显,震得越久才能停下来
      initialSpringVelocity:// 弹性效果的初始速度:数值越大开始弹性动画时初始速度越快
                    options:// 可自定义动画的过渡效果,来替换掉系统默认的平滑过渡效果
                 animations:^{

                     // 要改变的属性
                 } completion:^(BOOL finished) {

                     // 动画完成的回调
                 }];
②哪些运用UIView block底工动漫?

小编们只必要在UIView block功底动漫的animationsblock里一贯把可动画属性改造为对象值就能够了。

(2)UIView block关键帧动漫
①怎么是UIView block关键帧动漫?

地方谈到了UIView block功底动漫是UIView block属性动画的一种,而这里的UIView block关键帧动画也是UIView block属性动画的一种,它也是用来对view的可动漫属性做动漫的,只可是效果说不许在好几场景下比基本功动画要实惠恐怕加上一些,可是试行一遍UIView block关键帧动画可以安装八个至关心注重要帧所以能改善叁个属性值数十四回,并不是叁次性把属性值设置指标值

亟待专心的是:UIView block关键帧动漫设置重要帧只好因此扩充关键帧方法来设置,也便是layer突显动漫的机要帧动漫的数组关键帧法,那个是不扶助路线关键帧法的。

  • UIView block关键帧动漫
[UIView animateKeyframesWithDuration:// 动画时长
                               delay:// 延时多长时间后开始执行动画
                             options:// 可自定义动画的过渡效果,来替换掉系统默认的平滑过渡效果
                          animations:^{

                              // 添加关键帧
                          } completion:^(BOOL finished) {

                              // 动画完成的回调
                          }];

UIView block关键帧自定义过渡效果(UIViewKeyframeAnimationOptions)枚举值如下:

  • 貌似就安装下连着动画的运算形式就足以了,大概直接利用暗中认可就足以了。
UIViewKeyframeAnimationOptionCalculationModeLinear// 运算模式:连续,默认
UIViewKeyframeAnimationOptionCalculationModeDiscrete// 运算模式:离散
UIViewKeyframeAnimationOptionCalculationModePaced// 运算模式:均匀执行
UIViewKeyframeAnimationOptionCalculationModeCubic// 运算模式:平滑
UIViewKeyframeAnimationOptionCalculationModeCubicPaced// 运算模式:平滑均匀

UIViewKeyframeAnimationOptionRepeat = UIViewAnimationOptionRepeat// 重复执行动画
UIViewKeyframeAnimationOptionAllowUserInteraction = UIViewAnimationOptionAllowUserInteraction// 执行动画期间,开启view的用户交互

UIViewKeyframeAnimationOptionAutoreverse = UIViewAnimationOptionAutoreverse// 执行动画回路
UIViewKeyframeAnimationOptionLayoutSubviews = UIViewAnimationOptionLayoutSubviews// 执行动画时布局子控件
UIViewKeyframeAnimationOptionBeginFromCurrentState = UIViewAnimationOptionBeginFromCurrentState// 从当前状态开始执行动画
UIViewKeyframeAnimationOptionOverrideInheritedOptions  = UIViewAnimationOptionOverrideInheritedOptions// 不继承父动画设置
UIViewKeyframeAnimationOptionOverrideInheritedDuration = UIViewAnimationOptionOverrideInheritedDuration// 忽略嵌套动画的执行时间设置
  • 充实关键帧的措施
[UIView addKeyframeWithRelativeStartTime:// 这一帧动画开始的时间点(占总时间的比例)
                        relativeDuration:// 这一帧动画的动画时长(占总时间的比例)
                              animations:^{

                                  // 要改变的属性
                              }];
②怎么选用UIView block关键帧动漫?

我们只须要在UIView block重大帧动漫的animationsblock里向来扩充关键帧就足以了,再在加多关键帧方法的animationsblock里把可动漫属性改变为目的值就足以了。

(3)UIView block过渡动漫
①怎么是UIView block过渡动漫?

前方我们上学了UIView block基本功动漫和UIView block关键帧动漫,但我们精晓它俩实际上都以UIView block属性动漫,即只可以用来对view的可动漫属性做动漫。那么一旦大家几眼前想要对view的非动漫属性校正时(如label的文本,imageView的图片等)做动画,以至是对view的有些行为(如view的充足和移除,五个view之间切换)做动画,那就只好使用连着动漫了。

还要大家也能够看出,下面UIView block功底动画和UIView block关键帧动漫的一点方法里也提供了交接效果极度配置,也正是说过渡动画也是足以效用于可动漫属性的,可是还能做可动漫属性之外的洋洋效应。

接通动画的连接效果可参见UIView block底工动漫的交接效果,是同出一辙的。

  • 给单个视图的不可动漫属性或视图行为增多过渡动漫
[UIView transitionWithView:// 要做动画的视图
                  duration:// 动画时长
                   options:// 过渡动画效果
                animations:^{

                    // 要改变的不可动画属性或图层行为
                } completion:^(BOOL finished) {

                    // 动画完成的回调
                }];
  • 给三个视图切换时加多过渡动漫

注意:

  • 本条主意的连接效果是体现在fromView和toView的父视图上的
  • 那些方法无需提前把fromView和toView都添在父视图上,只要求先增加fromView就可以了
  • 其一措施在动漫进程中,会自行把fromView会从父视图中移除,并把toView增加到父视图上
[UIView transitionFromView:// 旧视图
                    toView:// 新视图
                  duration:// 动画时长
                   options:// 动画过渡效果
                completion:^(BOOL finished) {

                    // 动画完成时的回调
                }];
②怎么样行使UIView block过渡动漫?

咱俩只要求依照气象是转移单个视图的不可动漫属性或视图行为要加多过渡动漫还是给八个视图切换时增添过渡动漫接受相应的法子就可以了。

三、UIView的block动漫应用比如

1、UIView block底蕴动漫
  • 让一条弹幕从右往左飘过去
    (清单1.1)
//
//  ViewController.m
//  CoreAnimation
//
//  Created by 意一yiyi on 2017/11/13.
//  Copyright © 2017年 意一yiyi. All rights reserved.
//

#import "ViewController.h"

#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height

@interface ViewController ()

@property (strong, nonatomic) UILabel *label;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.label = [[UILabel alloc] init];
    self.label.backgroundColor = [UIColor magentaColor];
    self.label.frame = CGRectMake(kScreenWidth, 100, kScreenWidth, 30);
    self.label.text = @"嘿Siri,你在哪儿?";
    [self.view addSubview:self.label];
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {

    [UIView animateWithDuration:5 animations:^{

        self.label.transform = CGAffineTransformMakeTranslation(-kScreenWidth, 0);
    }];
}


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

@end
  • 任何新闻暂未透露。漂完之后,大家转移下弹幕内容
    (清单1.2)
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {

    [UIView animateWithDuration:5 animations:^{

        self.label.transform = CGAffineTransformMakeTranslation(-kScreenWidth, 0);
    } completion:^(BOOL finished) {

        self.label.text = @"你在哪儿,我就在哪儿!";
    }];
}
  • 咱俩能够让弹幕匀速地飘过,实际不是暗许的easyInEasyOut
    (清单1.3)
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {

    [UIView animateWithDuration:3 delay:0 options:(UIViewAnimationOptionCurveLinear) animations:^{

        self.label.transform = CGAffineTransformMakeTranslation(-kScreenWidth, 0);
    } completion:^(BOOL finished) {

        self.label.text = @"你在哪儿,我就在哪儿!";
    }];
}
  • 让弹幕弹一弹
    (清单1.4)
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {

    [UIView animateWithDuration:3 delay:0 usingSpringWithDamping:0.2 initialSpringVelocity:5 options:(UIViewAnimationOptionCurveLinear) animations:^{

        self.label.transform = CGAffineTransformMakeTranslation(-kScreenWidth, 0);
    } completion:^(BOOL finished) {

        self.label.text = @"你在哪儿,我就在哪儿!";
    }];
}

图片 1

1.gif

2、UIView block关键帧动漫

看似FaceBook登入分界面,登录失利这种输入框抖动的功效。借使使用底子动漫的话,大概就得平移二遍,再开二个底子动漫再平移一遍,得开大多少个底子动漫,关键帧动漫的话就开一个卡通就能够了,添关键帧就能够了。

(清单1.5)

//
//  ViewController.m
//  CoreAnimation
//
//  Created by 意一yiyi on 2017/11/13.
//  Copyright © 2017年 意一yiyi. All rights reserved.
//

#import "ViewController.h"

#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height

@interface ViewController ()

@property (strong, nonatomic) UILabel *label;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.label = [[UILabel alloc] init];
    self.label.backgroundColor = [UIColor cyanColor];
    self.label.frame = CGRectMake(0, 100, kScreenWidth, 30);
    self.label.text = @"请登录";
    [self.view addSubview:self.label];
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {

    self.label.text = @"登录失败";

    [UIView animateKeyframesWithDuration:0.5 delay:0 options:(UIViewKeyframeAnimationOptionCalculationModePaced) animations:^{

        [UIView addKeyframeWithRelativeStartTime:0 relativeDuration:1/4.0 animations:^{

            self.label.transform = CGAffineTransformMakeTranslation(10, 0);
        }];
        [UIView addKeyframeWithRelativeStartTime:1/4.0 relativeDuration:1/4.0 animations:^{

            self.label.transform = CGAffineTransformMakeTranslation(-10, 0);
        }];
        [UIView addKeyframeWithRelativeStartTime:2/4.0 relativeDuration:1/4.0 animations:^{

            self.label.transform = CGAffineTransformMakeTranslation(10, 0);
        }];
        [UIView addKeyframeWithRelativeStartTime:3/4.0 relativeDuration:1/4.0 animations:^{

            self.label.transform = CGAffineTransformMakeTranslation(0, 0);
        }];
    } completion:^(BOOL finished) {

        NSLog(@"动画结束了");
    }];
}


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

@end

图片 2

1.gif

3、UIView block过渡动漫
(1)给单个视图的不可动漫属性或视图行为增添过渡动漫
  • 切换imageView的图纸和label的公文

(清单1.6)

//
//  ViewController.m
//  CoreAnimation
//
//  Created by 意一yiyi on 2017/11/13.
//  Copyright © 2017年 意一yiyi. All rights reserved.
//

#import "ViewController.h"

#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height

@interface ViewController ()

@property (strong, nonatomic) UIImageView *imageView;
@property (strong, nonatomic) UILabel *label;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.imageView = [[UIImageView alloc] init];
    self.imageView.frame = CGRectMake(0, 64, kScreenWidth, kScreenWidth);
    self.imageView.image = [UIImage imageNamed:@"0.jpg"];
    [self.view addSubview:self.imageView];

    self.label = [[UILabel alloc] init];
    self.label.frame = CGRectMake(0, kScreenWidth + 100, kScreenWidth, 30);
    self.label.text = @"奥黛丽赫本";
    self.label.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:self.label];
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {

    NSInteger num = arc4random()%7;

    // 改变imageView的图片,淡入淡出效果
    [UIView transitionWithView:self.imageView duration:3 options:(UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionCurveLinear) animations:^{

        self.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%ld.jpg", num]];
    } completion:nil];

    // 改变label的文本,二维翻转效果
    [UIView transitionWithView:self.label duration:3 options:(UIViewAnimationOptionTransitionFlipFromLeft | UIViewAnimationOptionCurveLinear) animations:^{

        switch (num) {
            case 0:
                self.label.text = @"奥黛丽·赫本";
                break;
            case 1:
                self.label.text = @"苏菲·玛索";
                break;
            case 2:
                self.label.text = @"泰勒·斯威夫特";
                break;
            case 3:
                self.label.text = @"安妮·海瑟薇";
                break;
            case 4:
                self.label.text = @"娜塔丽·波特曼";
                break;
            case 5:
                self.label.text = @"凯拉·奈特利";
                break;
            case 6:
                self.label.text = @"杰西卡·阿尔芭";
                break;
        }
    } completion:nil];
}


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

@end

图片 3

1.gif

  • 淡入淡出的效果增加view
    (清单1.7)
//
//  ViewController.m
//  CoreAnimation
//
//  Created by 意一yiyi on 2017/11/13.
//  Copyright © 2017年 意一yiyi. All rights reserved.
//

#import "ViewController.h"

#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height

@interface ViewController ()

@property (strong, nonatomic) UIImageView *imageView;
@property (strong, nonatomic) UILabel *label;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.imageView = [[UIImageView alloc] init];
    self.imageView.frame = CGRectMake(0, 64, kScreenWidth, kScreenWidth);
    self.imageView.image = [UIImage imageNamed:@"0.jpg"];

    self.label = [[UILabel alloc] init];
    self.label.frame = CGRectMake(0, kScreenWidth + 100, kScreenWidth, 30);
    self.label.text = @"奥黛丽赫本";
    self.label.textAlignment = NSTextAlignmentCenter;
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {

    [UIView transitionWithView:self.view duration:3 options:(UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionCurveLinear) animations:^{

        [self.view addSubview:self.imageView];
        [self.view addSubview:self.label];
    } completion:nil];
}


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

@end

图片 4

1.gif

(2)给三个视图切换时加多过渡动漫
  • 诸如切换登入和登记视图(当然那一个也得以UIViewController的法子来替换,有周围的作用)

图片 5

1.gif

TAG标签:
版权声明:本文由金沙国际唯一平台登录发布于金沙国际唯一官网amjs,转载请注明出处:任何新闻暂未透露