![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Swift动画
文章平均质量分 65
Swift动画之路
LinShunIos
这个作者很懒,什么都没留下…
展开
-
系统学习iOS动画 —— Stroke和路径动画
这是要完成的动画:先添加需要的代码,这里需要将storyboard的ViewController换成TableViewController,然后为其Embed in Navigation Controllerimport UIKitfunc delay(seconds: Double, completion: @escaping ()-> Void) { DispatchQueue.main.asyncAfter(deadline: .now() + seconds, execute:原创 2021-11-22 16:09:14 · 1826 阅读 · 0 评论 -
系统学习iOS动画 —— 渐变动画
这个是希望达成的效果:先创建需要的控件:class ViewController: UIViewController { let timeLabel = UILabel() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. view.addSubview(timeLabel)原创 2021-11-12 14:51:54 · 2571 阅读 · 0 评论 -
系统学习iOS动画 —— 形状和蒙版
这是今天要完成的动画:先创建好所需要的控件:import UIKitclass ViewController: UIViewController { let screenWidth = UIScreen.main.bounds.size.width let screenHeight = UIScreen.main.bounds.size.height let backgroundImage = UIImageView() let VSLabel = UILabel(原创 2021-11-10 17:09:52 · 1015 阅读 · 0 评论 -
系统学习iOS动画 —— 动画组, 时间控制, 图层弹簧动画
1. 动画组和时间控制动画组可以对动画进行分组,可以向组中添加多个动画并同时调整持续时间,代理和timingFunction等属性。 对动画进行分组会产生简化的代码,并确保所有动画将作为一个实体单元同步。这里创建一个CAAnimationGroup let formGroup = CAAnimationGroup() formGroup.duration = 0.5 formGroup.fillMode = .backwards然后创建一个向右移动的动画和变化透明度的动画原创 2021-11-10 11:11:26 · 1709 阅读 · 0 评论 -
系统学习iOS动画—— BahamaAirLogin(动画的Keys和代理)
系统学习iOS动画—— BahamaAirLogin(动画的Keys和代理)关于视图动画和相应的闭包语法的一个棘手问题是,一旦您创建并运行视图动画,您就无法暂停,停止或以任何方式访问它。但是,使用核心动画,您可以轻松检查在图层上运行的动画,并在需要时停止它们。 此外,您甚至可以在动画上设置委托对象并对动画事件做出反应。接着上一篇文章的工程,这里先添加一个属性info。let info = UILabel()在viewDidLoad里面设置好info的属性info.frame = CGRect(原创 2021-11-03 17:03:04 · 315 阅读 · 0 评论 -
系统学习iOS动画—— BahamaAirLogin(Layer 动画)
系统学习iOS动画—— BahamaAirLogin(Layer 动画)在我之前到文章 —— 系统学习iOS动画—— BahamaAirLogin(UIKit动画)中,用的是UIView.animate来进行alpha的变化实现添加透明度变化动画。layer 动画的工作方式很像UIView 动画;只需在定义的时间段内,在起始值和结束值之间设置属性的动画,并让Core Animation处理其间的渲染。然而,layer动画比UIView动画有更多的可动画属性;在设计效果时,这给了开发者很多选择和灵活性。许原创 2021-11-03 15:39:49 · 338 阅读 · 0 评论 -
系统学习iOS动画—— Flight Info(keyframe-animations)
这是要达成的效果:先添加所需要的部件:class ViewController: UIViewController { let screenWidth = UIScreen.main.bounds.size.width let screenHeight = UIScreen.main.bounds.size.height let backgroundImageView = UIImageView() let summaryIcon = UIIma原创 2021-11-03 10:58:07 · 398 阅读 · 0 评论 -
Swift 动画 —— 数字滚动UILabel动画
新建一个Swift工程。要做到数字滚动的动画,可能很多人都会想到用UIView的animate方法,但是UIView的animate方法只会做关于UIView的Frame,alpha,color,transform的相关操作,所以这里用UIView的animate是无法做到这些效果的。这里需要需要用到——CADisplaylink,一个允许你的应用根据屏幕刷新率同步进行应用的绘制工作的计时器对象。1.建立CADisplaylink先创建一个Label。 let countingLabel: UILab原创 2021-10-04 15:01:06 · 1383 阅读 · 0 评论 -
Swift动画 —— 进度条
最后需要完成的效果:首先要做的就是用CAShapeLayer画一个圆。这里先创建一个路径,把圆的中心放在视图的中心,半径设为100,然后设置起始角度和结束角度,并将clockwise设为true。然后将shapeLayer的路径设为刚才创建的路径,最后将shapeLayer添加到view的layer的sublayer中。 let shapeLayer = CAShapeLayer() let center = view.center let circu原创 2021-10-09 10:11:07 · 1682 阅读 · 0 评论 -
Swift动画 —— 链接动画
首先声明两个Label let titleLabel = UILabel() let bodyLabel = UILabel()在viewDidLoad中,将titleLabel和bodyLabel的属性设置好,然后创建一个StackView,将两个label放在里面,UIStackView是一个简化的界面,用于帮助程序猿将一队视图按竖直或者水平排列。将stackView设置为竖直排列,并将其放在视图中间。titleLabel.backgroundColor = .redbodyLa原创 2021-10-05 17:48:34 · 330 阅读 · 0 评论 -
Swift动画 —— 登陆页面动画(二)
下面是想要实现的动画效果:Logo的动画做完了,接下来要做中间画线的动画以及中间Button的浮现动画同样的,在这里声明loginButton属性和所需要的button大小属性。 private let loginButtonSize = CGSize(width: 60, height: 60) var loginButton: UIButton!在setupUI里面设置好loginButton的大小、位置、border、cornerRadius、title等属性并添加到为vie原创 2021-10-09 17:32:48 · 333 阅读 · 0 评论 -
Swift动画 —— 登陆页面动画(一)
下面是想要实现的动画效果:这里拆分成三个部分来完成,这里先来完成LOGO动画。先把LOGO图片添加到Assets里面,声明logoImageView属性以及之后所期望的logo大小让VC持有。private let logoSize = CGSize(width: 250, height: 40)private var logoImageView: UIImageView!声明一个setupUI方法并在viewDidAppear里面调用,在setupUI里面设置好logoImageView的f原创 2021-10-09 16:43:37 · 354 阅读 · 0 评论 -
swift动画 —— 高斯模糊
首先先创建一个ImageView好方便来展示高斯模糊效果。声明一个ImageViewimageView = UIImageView(image: UIImage(named: "happy"))在viewDidLoad中创建一个方法,方法里面设置其大小,并且将其放在View的中间,然后将其添加为View的子view。 imageView.frame = CGRect(x: 0, y: 0, width: 200, height: 200) imageView.cent原创 2021-10-04 19:23:23 · 1156 阅读 · 0 评论 -
swift动画 —— 表情弹窗
首先创建一个长按手势,并创建响应方法,在响应方法里面添加一个print方法,这样打开模拟器后就可以查看是否添加成功。 func setupLongPressGesture() { view.addGestureRecognizer(UILongPressGestureRecognizer(target: self, action: #selector(handleLongPress))) } @objc func handleLongPress(gesture:原创 2021-10-08 10:45:12 · 384 阅读 · 0 评论 -
Swift 动画 —— controller转场动画
Controller的转场动画主要是通过UIViewControllerAnimatedTransitioning 和 UIViewControllerTransitioningDelegate 来完成。实现效果:首先,创建一个class PresentViewControllerAnimation,继承自NSObject,遵守UIViewControllerAnimatedTransitioning。然后创建一个初始化方法,声明一个originFrame来保存初始化的frame。这里遵守UIView原创 2021-10-25 16:24:22 · 913 阅读 · 0 评论 -
系统学习iOS动画—— BahamaAirLogin(UIKit动画)
这个部分介绍UIKit动画API,这些API专门用于轻松制作视图动画。UIKit动画API不仅易于使用,而且提供了大量灵活性和强大功能,可以处理大多数动画要求。这个是要达到的效果:首先要添加这些小部件:import UIKitclass ViewController: UIViewController { let screenWidth = UIScreen.main.bounds.size.width let screenHeight = UIScreen.main.bound原创 2021-10-29 14:51:43 · 228 阅读 · 0 评论 -
Swift动画 —— Shimmer(使用Gradient Masks添加微光闪烁的特效)
完成效果:首先在viewDidLoad将视图的背景色修改为:view.backgroundColor = UIColor(white: 1, alpha: 0.1)接下来创建一个UILabel:文字为Shimmer,颜色为白色,字体大小为80,文字居中对齐,赋予frame之后添加为视图的子View。这样运行后就能看到一个文字内容为白色的Shimmer的Label了 let darkTextLabel = UILabel() darkTextLabel.text = "S原创 2021-10-08 15:44:26 · 806 阅读 · 0 评论 -
Swift动画 —— 登陆页面动画(三)
下面是想要实现的动画效果:接下来就剩下????。的动画了。首先需要把????。的图片放到Asset里面。同样的声明一个carImageView属性和期望的图片大小属性,这里需要多创建一个carAnimator来实现动画。 private let carSize = CGSize(width: 50, height: 45) private var carImageView: UIImageView! private var carAnimator: UIViewPropertyA原创 2021-10-09 17:32:21 · 281 阅读 · 0 评论 -
Swift 动画 —— Facebook 点赞动画
新建一个Swift工程。然后首先要做的就是画出动画的曲线。画曲线新建一个CurvedView 类 class CurvedView: UIView { override func draw(_ rect: CGRect) { } }然后在viewDidLoad中创建一个CurvedView对象并且添加到view上。 let curvedView = CurvedView(frame: view.frame)原创 2021-10-03 12:18:35 · 485 阅读 · 0 评论 -
swift动画 —— 颜色渐变以及转换动画
这篇文章是通过结合使用CAGradientLayer、CABasicAnimation以及CAAnimationDelegate来达到颜色渐变以及转换的动画,下面是今天要达成的效果图:首先创建一个CAGradientLayer和几个自己喜欢的颜色,让VC持有。let colorOne = #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1).cgColorlet colorTwo = #原创 2021-10-09 15:04:51 · 921 阅读 · 0 评论