基于 CALayer 的 Swift 动画实现及分类

CALayer 是 Apple 平台上视图绘制和动画的基础。将探讨如何使用 CALayer 创建多种动画效果。

动画类型

CALayer 动画主要分为基础动画和关键帧动画:

  1. 基础动画 (CABasicAnimation): 通过改变 CALayer 的 positionopacitytransform 等属性实现动画效果,例如创建视图的平移动画。开发者可以通过设置 fromValuetoValuedurationrepeatCountautoreverses 等属性控制动画。

  2. 关键帧动画 (CAKeyframeAnimation): 允许开发者在动画过程中设置多个关键帧,实现更复杂的动画路径或变化,例如沿着特定路径移动的动画。keyTimes 属性用于指定每个关键帧的时间比例,values 存储对应时间点的属性值。

其他动画技术

  1. 组合动画 (CAAnimationGroup): 将多个动画组合在一起,实现同时变换多个属性或创建复合效果,组合内的动画会同步开始和执行。

  2. 时间函数 (CAMediaTimingFunction): 通过 CAMediaTimingFunction 调整动画的速率曲线,实现加速、减速等动态效果,控制动画的节奏和速度。

  3. 动画管理: 使用 add(_:forKey:) 将动画添加到 CALayer,并使用 key 参数唯一标识动画,方便后续操作。调用 removeAnimation(forKey:)removeAllAnimations() 停止或移除动画。

zip
swift-基于CALayer写的动画分类.zip 预估大小:25个文件
folder
Liszt-CALayerAnimation-master 文件夹
folder
Liszt_Animation 文件夹
file
main.m 370B
folder
CALayer+Animation 文件夹
file
CALayer+Animation.m 2KB
file
CALayer+Animation.h 2KB
file
LisztViewController.m 4KB
file
Info.plist 1KB
file
LisztAppDelegate.h 310B
file
animaiton_image.jpg 7KB
file
animation_image1.png 279KB
file
LisztAppDelegate.m 429B
folder
Base.lproj 文件夹
file
LaunchScreen.storyboard 2KB
file
Main.storyboard 3KB
file
LisztViewController.h 249B
folder
Assets.xcassets 文件夹
folder
AppIcon.appiconset 文件夹
file
Contents.json 1KB
folder
Liszt_AnimationTests 文件夹
file
Info.plist 680B
file
Liszt_AnimationTests.m 949B
folder
Liszt_Animation.xcodeproj 文件夹
folder
project.xcworkspace 文件夹
file
contents.xcworkspacedata 160B
folder
xcuserdata 文件夹
folder
lester.xcuserdatad 文件夹
file
UserInterfaceState.xcuserstate 22KB
file
project.pbxproj 23KB
folder
xcuserdata 文件夹
folder
lester.xcuserdatad 文件夹
folder
xcschemes 文件夹
file
xcschememanagement.plist 667B
file
Liszt_Animation.xcscheme 4KB
folder
xcdebugger 文件夹
file
Breakpoints_v2.xcbkptlist 91B
file
README.md 2KB
folder
Liszt_AnimationUITests 文件夹
file
Info.plist 680B
file
Liszt_AnimationUITests.m 1KB
file
Liszt.gif 925KB
zip 文件大小:1.15MB