DHTalk's Blog

Stay hungry Stay foolish.

Swift CoreAnimation:CATransition 转场动画

CATransition 同 CoreAnimation 核心动画中 CABasicAnimation 等相关类的使用方法类似。主要分为三个步骤: (1)实例化 CATransition,并设置相应的转场动画 key。(2)设置合适的转场动画属性,比如动画时间、过渡方向、动画保持状态等。(3)将动画效果添加到对应视图的 Layer 图层中。 CATr......

iOS 开发之 Widget 的实现

添加 Today Extension 工程在原有的项目基础上,想要使用 Today Extension,即 Widget。我们需要创建一个新的 target,点击File-->New-->Target-->Today Extention,如下图所示: 创建成功后如图所示: 此时直接运行项目,如下图所示: Widget UI ......

Swift Animation 3D动画

锚点的基本概念要想实现一些复杂的 3D 动画,首先要先搞清楚锚点的概念。AnchorPoint 是一个 CGPoint 类型的值,该值指定了一个基于 bounds 的坐标系位置。也就是说锚点指定了 bounds 相对于 position 的值,同时也是变化时候的中心点。 一般情况下,锚点的默认值是(0.5,0.5),取值范围为0~1之间。当锚点值为(0......

Swift Animation 内容层动画(四)

CAShapeLayer 打造动态图表CAShapeLayer 追本溯源CAShapeLayer 是 QuartzCore 框架下非常重要的一个类,利用它可以实现各种图形的绘制类动画效果。 CAShapeLayer 是 iOS 框架下的核心动画部分,Shape 为形状的意思,描述了当前动画的特点,可以实现各类形状的绘制。 Layer 表明当前动画并非直......

Swift Animation 内容层动画(三)

CAEmitterCell 粒子动画在 iOS 系统中,粒子系统有2部分组成:CAEmitterLayer 和 CAEmitterCell。 (1)CAEmitterLayer 为粒子发射图层。该图层主要用于控制粒子展现范围、粒子发射位置、粒子发射形状、渲染模式等属性。通过 CAEmitterCell 构建的发射单元都受到 CAEmitterLaye......

Swift Animation 登录按钮动画

登录按钮的水纹动画当点击登录按钮时,会以点击点为圆心形成水纹扩散。扩散形状为圆形,扩散颜色为粉色,在扩散过程中按钮的状态为不可点击。 水纹动画拆解为以下5个功能模块 UIButton 坐标获取 Draw 圆形绘制 定时器刷新 其他模块 调用模块 创建基于 UIButton 的 MyButton 类 坐标获取func startButtonAnim......

Swift Animation 内容层动画(二)

CAkeyframeAnimation 是 CAlayer 层下的关键帧动画类,利用该类可以实现类似 UIView 的关键帧动画效果。 CAkeyframeAnimation 是 CApropertyAnimation 的一个子类,与 CABasicAnimation 原理类似,都是通过修改当前 CAlayer 图层的 value 属性来实现动画效果。......

Swift Animation 内容层动画(一)

CAlayer 层动画先初始化一个按钮 loginButton = UIButton(frame: CGRect(x: 20, y: 230, width: self.view.frame.width-20*2,height: 50))loginButton!.backgroundColor = UIColor(red: 50/255.0, green......

Swift Animation GIF 动画

GIF 分解为单帧图片5个模块,4个过程 本地读取GIF图片,将其转换为 NSData 数据类型 将 NSData 作为 ImageIO 模块的输入 获取 ImageIO 的输出数据:UIImage 将获取到的 UIImage 数据存储为 JPG 或者 PNG 格式保存到本地 // 读取 GIF 文件并将其转换为 NSData 类型let gif......

Swift Animation 显示层动画(二)

显示层关键帧动画实现飞机由远及近的移动,并在移动过程中使飞机逐渐变大。 初始化飞机和机场视图imageViewAirport = UIImageView()imageViewAirport?.frame = UIScreen.main.boundsimageViewAirport?.image = UIImage(named: "Airport.png......