CATransition

- (IBAction)btnClicked:(id)sender {
    
    //创建CATransition
    CATransition *transition = [CATransition animation];
    //持续时长
    transition.duration = 0.5;
    //计时函数,从头到尾的流畅度
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];;
    
    //  @"cube" @"moveIn" @"reveal" @"fade"(default) @"pageCurl" @"pageUnCurl"
    //  @"suckEffect" @"rippleEffect" @"oglFlip"
    //动画类型
    transition.type = @"flip";
    
    transition.subtype = kCATransitionFromRight; // 动画方向
    
     //要令一个转场生效,组要将动画添加到将要变为动画视图所附着的图层。例如在两个视图控制器之间进行转场,那就将动画添加到窗口的图层中:
    //如果是将控制器内的子视图转场到另一个子视图,就将动画加入到视图控制器的图层。还有一种选择,用视图控制器内部的视图作为替代,将你的子视图作为主视图的子图层:
    //如果你使用的是导航控制器,可以将动画加到导航控制器的视图图层中。
    
    // case 1
//   [self.navigationController.view.layer addAnimation:transition forKey:@"transition"];
//    UIViewController *vc= [[UIViewController alloc] init];
//    vc.view.backgroundColor = [UIColor redColor];
//    [self.navigationController pushViewController:vc animated:YES];
    
    
    // case 2
    transition.type = @"pageCurl";
    transition.subtype = kCATransitionFromLeft;
// 效果神奇 (*****) transition.startProgress = 0.3;
    transition.endProgress = 0.8;
// 这俩属性要同时设置
    transition.fillMode = @"forwards";
    transition.removedOnCompletion = NO; [self.greenView.layer addAnimation:transition forKey:
@"green"]; }

 

@interface CATransition : CAAnimation

CATransition是CAAnimation的子类

 

 CAAnimation类
CAAnimation类,是一个抽象类。遵循CAMediaTiming协议和CAAction协议!
CAMediaTiming协议

可以调整时间,包括持续时间,速度,重复次数。

CAAction协议

可以通过响应动作的方式来显示动画。

CAAnimation有很多派生类

CATransition 提供渐变效果:(推拉push效果,消退fade效果,揭开reveal效果)。

CAAnimationGroup 允许多个动画同时播放。

 CABasicAnimation 提供了对单一动画的实现。

CAKeyframeAnimation 关键桢动画,可以定义行动路线。

CAConstraint 约束类,在布局管理器类中用它来设置属性。

CAConstraintLayoutManager 约束布局管理器,是用来将多个CALayer进行布局的.各个CALayer是通过名称来区分,而布局属性是通过CAConstraint来设置的。



CATransaction 事务类,可以对多个layer的属性同时进行修改.它分隐式事务和显式事务。

 CAAnimation属性
delegate

@property(retain) id delegate
为CAAnimation设置代理。默认为nil。
注意:一个CAAnimation实例,不能设置delegate为self。会引起循环引用。

removedOnCompletion

@property(getter=isRemovedOnCompletion) BOOL removedOnCompletion

设置是否动画完成后,动画效果从设置的layer上移除。默认为YES。

timingFunction
@property(retain) CAMediaTimingFunction *timingFunction
设置动画的“时机”效果。就是动画自身的“节奏”:比如:开始快,结束时变慢;开始慢,结束时变快;匀速;等,在动画过程中的“时机”效果。

animation
+ (id)animation
创建并返回一个CAAnimation实例。
defaultValueForKey
+ (id)defaultValueForKey:(NSString *)key
根据属性key,返回相应的属性值。

CAAnimation实例方法
shouldArchiveValueForKey
- (BOOL)shouldArchiveValueForKey:(NSString *)key
返回指定的属性值是否可以归档。
key:指定的属性。
YES:指明该属性可以被归档;NO:不能被归档。

CAAnimation协议方法
animationDidStart
- (void)animationDidStart:(CAAnimation *)theAnimation
动画开始时,执行的方法。
theAnimation:正在执行动画的CAAnimation实例。

animationDidStop:finished
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
动画执行完成或者动画为执行被删除时,执行该方法。
theAnimation:完成或者被删除的动画实例
flag:标志该动画是执行完成或者被删除:YES:执行完成;NO:被删除。

转载于:https://www.cnblogs.com/yaoxc/p/4054501.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容介绍 项目结构: Controller层:使用Spring MVC来处理用户请求,负责将请求分发到相应的业务逻辑层,并将数据传递给视图层进行展示。Controller层通常包含控制器类,这些类通过注解如@Controller、@RequestMapping等标记,负责处理HTTP请求并返回响应。 Service层:Spring的核心部分,用于处理业务逻辑。Service层通过接口和实现类的方式,将业务逻辑与具体的实现细节分离。常见的注解有@Service和@Transactional,后者用于管理事务。 DAO层:使用MyBatis来实现数据持久化,DAO层与数据库直接交互,执行CRUD操作。MyBatis通过XML映射文件或注解的方式,将SQL语句与Java对象绑定,实现高效的数据访问。 Spring整合: Spring核心配置:包括Spring的IOC容器配置,管理Service和DAO层的Bean。配置文件通常包括applicationContext.xml或采用Java配置类。 事务管理:通过Spring的声明式事务管理,简化了事务的处理,确保数据一致性和完整性。 Spring MVC整合: 视图解析器:配置Spring MVC的视图解析器,将逻辑视图名解析为具体的JSP或其他类型的视图。 拦截器:通过配置Spring MVC的拦截器,处理请求的预处理和后处理,常用于权限验证、日志记录等功能。 MyBatis整合: 数据源配置:配置数据库连接池(如Druid或C3P0),确保应用可以高效地访问数据库。 SQL映射文件:使用MyBatis的XML文件或注解配置,将SQL语句与Java对象映射,支持复杂的查询、插入、更新和删除操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值