ios duang 动画简记

本文介绍了一种使用Core Animation在iOS中实现复杂动画效果的方法。通过调整动画的速度、时间和类型,可以创建出各种视觉效果,例如缩放动画。此外,还介绍了如何设置动画的关键帧、时间函数及过渡效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

+ (void)showAnimationFlashWithView:(UIView *)animationView duration:(CGFloat)duration {
    CAKeyframeAnimation *popAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
    if (!duration) {
        popAnimation.duration = .8;
    }
    popAnimation.duration = duration;
    popAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.0f, 0.01f, 1.0f)],[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.1f, 1.1, 1.0f)],[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.9f, 0.9, 1.0f)],[NSValue valueWithCATransform3D:CATransform3DIdentity]];
    popAnimation.keyTimes = @[@0.2f,@0.5f,@0.75f,@1.0f];
    popAnimation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut],[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
    [animationView.layer addAnimation:popAnimation forKey:nil];
}
   /*动画速度,何时快、慢
    (
    kCAMediaTimingFunctionLinear 线性(匀速)|
    kCAMediaTimingFunctionEaseIn 先慢|
    kCAMediaTimingFunctionEaseOut 后慢|
    kCAMediaTimingFunctionEaseInEaseOut 先慢 后慢 中间快|
    kCAMediaTimingFunctionDefault 默认|
    )
    */
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]];
    
    
    /*动画效果
     (
     kCATransitionFade淡出|
     kCATransitionMoveIn覆盖原图|
     kCATransitionPush推出|
     kCATransitionReveal底部显出来
     )
     */        
    [animation setType:kCATransitionPush];
    
    /*动画方向
     (
     kCATransitionFromRight|
     kCATransitionFromLeft|
     kCATransitionFromTop|
     kCATransitionFromBottom
     )
     */
[anim setFromValue:[NSValue valueWithCATransform3D:CATransform3DIdentity]]; //放在3D坐标系中最正的位置


转载于:https://my.oschina.net/zhaodacai/blog/648349

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值