objective 动画

-(void)animo10{

    //1 创建并指定要修改的属性
    // KeyPath:CAlayer的属性名, 不是所有的属性都可以, 只有在头文件中出现animatable的属性才可以, 可以修改属性的属性, 例如:bounds.size
    // CALayer
    CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"bounds"];
    [basic setDuration:2];
    //2 修改属性值
    basic.fromValue = [NSValue valueWithCGRect:CGRectMake(0, 0, self.animoView.bounds.size.width, self.animoView.bounds.size.height)];
    basic.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 200, 200)];

    CAKeyframeAnimation *keyFrame = [CAKeyframeAnimation animationWithKeyPath:@"backgroundColor"];
    [keyFrame setDuration:5];
    keyFrame.values = @[(id)[UIColor redColor].CGColor, (id)[UIColor orangeColor].CGColor, (id)[UIColor yellowColor].CGColor, (id)[UIColor greenColor].CGColor, (id)[UIColor blueColor].CGColor];
    //keyTimes中的第一个值是0, 不能修改
    keyFrame.keyTimes = @[@(0.3), @(0.5), @(0.6), @(0.7), @(0.9)];

    // 创建
    //当group动画的时长 > 组中所有动画的最长时长, 动画的时长以组中最长的时长为准
    //当group动画的时长 < 组中所有动画的最长时长, 动画的时长以group的时长为准
    //最合适: group的时长 = 组中所有动画的最长时长

    CAAnimationGroup *group = [CAAnimationGroup animation];
    [group setDuration:10];

    //设置组动画
    group.animations = @[basic, keyFrame];

    //添加动画
    [self.animoView.layer addAnimation:group forKey:nil];
}
-(void)animo9{
    //1 创建
    CATransition *transition = [CATransition animation];
    [transition setDuration:2];
    //2 设置过度样式
    transition.type = kCATransitionReveal;//控制样式
    transition.subtype = kCATransitionFromBottom;//控制方向

    //添加动画
    [self.animoView.layer addAnimation:transition forKey:nil];
}
-(void)animo8{

    // //1 创建动画
    // CAKeyframeAnimation *keyFrame = [CAKeyframeAnimation animationWithKeyPath:@"bounds"];
    // [keyFrame setDuration:2];
    // //2 修改属性
    // keyFrame.values = @[[NSValue valueWithCGRect:CGRectMake(0, 0, self.animoView.bounds.size.width, self.animoView.bounds.size.height)], [NSValue valueWithCGRect:CGRectMake(0, 0, 250, 250)], [NSValue valueWithCGRect:CGRectMake(0, 0, 300, 300)]];
    // // keyTimes:值代表了出现动画的时刻, 值得范围是0~1, 值必须是递增的, keyTimes和values是一一对应的
    // keyFrame.keyTimes = @[@(0.4), @(0.6), @(1)];
    // //3 添加动画
    // [self.animoView.layer addAnimation:keyFrame forKey:@"keyFrame"];

    CAKeyframeAnimation *keyFrame2 = [CAKeyframeAnimation animationWithKeyPath:@"backgroundColor"];
    [keyFrame2 setDuration:3];
    keyFrame2.values = @[(id)[UIColor redColor].CGColor, (id)[UIColor orangeColor].CGColor, (id)[UIColor yellowColor].CGColor, (id)[UIColor greenColor].CGColor, (id)[UIColor blueColor].CGColor];
    //keyTimes中的第一个值是0, 不能修改
    keyFrame2.keyTimes = @[@(0.3), @(0.5), @(0.6), @(0.7), @(0.9)];
    [self.animoView.layer addAnimation:keyFrame2 forKey:nil];
}
-(void)animo7{

    //1 创建并指定要修改的属性
    // KeyPath:CAlayer的属性名, 不是所有的属性都可以, 只有在头文件中出现animatable的属性才可以, 可以修改属性的属性, 例如:bounds.size
    // CALayer
    CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"bounds"];
    [basic setDuration:0.2];
    [basic setRepeatCount:100];
    //2 修改属性值
    basic.fromValue = [NSValue valueWithCGRect:CGRectMake(0, 0, self.animoView.bounds.size.width, self.animoView.bounds.size.height)];
    basic.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 200, 200)];
    // basic.byValue =
    //3 添加动画
    //key做区分动画用
    [self.animoView.layer addAnimation:basic forKey:@"changColor"];
}
-(void)animo6{

    self.animoView.layer.cornerRadius = 50;
    //设置圆角, 参数是内切圆的半径, 若想画一个圆, 前提是view必须是正方形, 参数应该是view边长的一半
    self.animoView.layer.borderWidth = 1;//设置描边的宽度
    self.animoView.layer.borderColor = [UIColor orangeColor].CGColor; //设置描边的颜色(UIView上的颜色使用的是UIColor, CALayer上使用的颜色是CGColor)
    self.animoView.layer.shadowOffset = CGSizeMake(50, 100); //设置阴影的偏移量 width影响水平偏移(正右负左), height影响垂直偏移(正下负上)
    self.animoView.layer.shadowColor = [UIColor grayColor].CGColor; //阴影的偏移的颜色
    self.animoView.layer.shadowOpacity = 1; //阴影的不透明度, 取值范围(0 ~ 1), 默认是0, 就是透明的
}
-(void)animo5{

    CAShapeLayer *layer = [[CAShapeLayer alloc] init]; //新建layer
    UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(100, 100, 100, 100)];//初始化bezier曲线--矩形
    layer.path = path.CGPath; //在layer上赋予曲线的路径
    layer.fillColor = [[UIColor clearColor] CGColor]; //layer的填充颜色
    layer.strokeColor = [[UIColor blackColor] CGColor]; //layer的边框颜色
    [self.view.layer addSublayer:layer]; //添加layer
}
-(void)animo4{

    //    layer 动画
    //绕z轴旋转的动画
    CABasicAnimation * ani = [CABasicAnimation animationWithKeyPath:@"transform"];
    //从0度开始
    ani.fromValue = @0;
    //旋转到180度
    ani.toValue = [NSNumber numberWithFloat:M_PI];
    //时间2S
    ani.duration = 2;
    //设置为z轴旋转
    ani.valueFunction = [CAValueFunction functionWithName:kCAValueFunctionRotateY];
    //执行动画
    [self.animoView.layer addAnimation:ani forKey:@""];
}
-(void)animo3{
    //Block 动画
    //    [UIView animateWithDuration:2 animations:^{
    //        
    //    }];
    //    
    //    [UIView animateWithDuration:2 animations:^{
    //        
    //    } completion:^(BOOL finished) {
    //        
    //    }];

    [UIView animateWithDuration:2 delay:1 options:UIViewAnimationOptionCurveEaseInOut animations:^{
        [UIView setAnimationRepeatCount:100];
        [UIView setAnimationRepeatAutoreverses:YES];
        [UIView setAnimationCurve:UIViewAnimationCurveLinear];  //匀速

        //圆角 与 边框
        self.animoView.layer.cornerRadius = 50;
        self.animoView.layer.masksToBounds = YES;
        self.animoView.layer.borderColor = [[UIColor blackColor] CGColor];
        self.animoView.layer.borderWidth = 5;


        //        //shadow 阴影
        //        self.animoView.layer.shadowColor = [[UIColor greenColor] CGColor];
        //        self.animoView.layer.shadowOpacity = 1.0;
        //        self.animoView.layer.shadowRadius = 20.0;
        //        self.animoView.layer.shadowOffset = CGSizeMake(100, 100);


        self.animoView.center = CGPointMake(200, 300);


    } completion:^(BOOL finished) {
        self.animoView.center = CGPointMake(150 , 150);
        [UIView setAnimationsEnabled:YES];
    }];
}
-(void)animo2{
    //UIViewTransition

    [UIView beginAnimations:@"过渡动画" context:nil];
    [UIView setAnimationDuration:2];
    [UIView setAnimationRepeatCount:50];

    //    UIViewAnimationTransitionNone,
    //    UIViewAnimationTransitionFlipFromLeft,
    //    UIViewAnimationTransitionFlipFromRight,
    //    UIViewAnimationTransitionCurlUp,
    //    UIViewAnimationTransitionCurlDown,

    [UIView setAnimationTransition:4 forView:self.animoView cache:YES];

    [UIView commitAnimations];
}
-(void)animo1{

    //1、配置动画
    [UIView beginAnimations:@"第一个动画" context:nil];
    [UIView setAnimationDuration:2];
    [UIView setAnimationDelay:1];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationRepeatCount:10];
    [UIView setAnimationRepeatAutoreverses:YES];

    //2、改变要执行动画的视图的 尺寸、位置或者颜色
    self.animoView.frame = CGRectMake(200, 200, 50, 50);
    self.animoView.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];

    //3、确认动画并执行
    [UIView commitAnimations];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园信息化系统解决方案旨在通过先进的信息技术,实现教育的全方位创新和优质资源的普及共享。该方案依据国家和地方政策背景,如教育部《教育信息化“十三五”规划》和《教育信息化十年发展规划》,以信息技术的革命性影响为指导,推进教育信息化建设,实现教育思想和方法的创新。 技术发展为智慧校园建设提供了强有力的支撑。方案涵盖了互连互通、优质资源共享、宽带网络、移动APP、电子书包、电子教学白板、3D打印、VR虚拟教学等技术应用,以及大数据和云计算技术,提升了教学数据记录和分析水平。此外,教育资源公共服务平台、教育管理公共服务平台等平台建设,进一步提高了教学、管控的效率。 智慧校园系统由智慧教学、智慧管控和智慧办公三大部分组成,各自具有丰富的应用场景。智慧教学包括微课、公开课、精品课等教学资源的整合和共享,支持在线编辑、录播资源、教学分析等功能。智慧管控则通过平安校园、可视对讲、紧急求助、视频监控等手段,保障校园安全。智慧办公则利用远程视讯、无纸化会议、数字会议等技术,提高行政效率和会议质量。 教育录播系统作为智慧校园的重要组成部分,提供了一套满足学校和教育局需求的解决方案。它包括标准课室、微格课室、精品课室等,通过自动五机位方案、高保真音频采集、一键式录课等功能,实现了优质教学资源的录制和共享。此外,录播系统还包括互动教学、录播班班通、教育中控、校园广播等应用,促进了教育资源的均衡化发展。 智慧办公的另一重点是无纸化会议和数字会议系统的建设,它们通过高效的文件管理、会议文件保密处理、本地会议的音频传输和摄像跟踪等功能,实现了会议的高效化和集中管控。这些系统不仅提高了会议的效率和质量,还通过一键管控、无线管控等设计,简化了操作流程,使得会议更加便捷和环保。 总之,智慧校园信息化系统解决方案通过整合先进的信息技术和教学资源,不仅提升了教育质量和管理效率,还为实现教育均衡化和资源共享提供了有力支持,推动了教育现代化的进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值