iOS 动画二十五:Frame Animations with UIImageView

Frame Animations 设置
penguin.animationImages = walkFrames 
penguin.animationDuration = animationDuration / 3 
penguin.animationRepeatCount = 3
  1. animationImages: 存储帧动画的所有帧图像。
    walkFrames 在代码中作为包含 UIImage对象的数组在前面已声明,所以这里我们只需要将它分配给 penguin.animationImages 来设置动画帧。

  2. animationDuration: 告诉 UIKit 动画的一次迭代应该持续多长时间; 因为动画将重复三次,所以将其设置为总 animationDuration 时长的三分之一。

  3. animationRepeatCount: 控制动画的重复次数; 在这种情况下,动画将重复三次。

var isLookingRight: Bool = true { 
  didSet { 
       let xScale: CGFloat = isLookingRight ? 1 : -1 
       penguin.transform = CGAffineTransform(scaleX: xScale, y: 1)
       slideButton.transform = penguin.transform
    } 
}

此代码将企鹅和滑动按钮的 x 轴刻度设置为 1 或 -1,具体取决于 isLookingRight 的值。 然后设置该变换将触发视图,以便企鹅可以面向正确的方向运动:

在方法 actionLeft() 底部执行动画:

penguin.startAnimating()

当调用startAnimating() 时,播放动画:animationImages 数组中的每个帧在 1 秒内总共显示三次。

Translating your view
UIView.animate(withDuration: animationDuration, delay: 0, 
         options: .curveEaseOut,
         animations: { 
               self.penguin.center.x -= self.walkSize.width
         }, completion: nil )

设置企鹅每次移动距离。

Playing different frame animations

最终效果图:


UIImageView frame animation

demo下载

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 20170613亲子践行打卡20/30 多陪伴,多阅读。 孩子第一个30天目标:21:00前入睡。 妈妈第一...
    方颖璐璐妈妈阅读 235评论 1 0
  • 欲望与时间管理有很大关系,因为如果能管住自已的欲望,做自己擅长做的事,就会事半功倍,相反就可能搞得自己心烦事乱。...
    岩如yu阅读 823评论 0 49
  • 自我介绍十字真言,与大家分享。 我叫+来自+从事+喜欢+祝福+ 金句分享: 1.人以群分,物以类聚,同流才能交流,...
    月明盟阅读 587评论 0 0
  • 第一句写什么。 你现在睡的呼呼的。外头不知道什么机器消停了,路上还有车来回经过。 前天晚你跑肚,今天我跑肚。微信上...
    鸡毛蒜皮一地捡阅读 256评论 0 0
  • 《火山殇》 温志龄 靓女赴美观火山,违规拍照太靠前。 猝然脚滑滚喷口,...
    碧野牧歌阅读 145评论 2 3