lottie 中 AnimationView 的 IBOutlet 不显示动画
IBOutlet of AnimationView in lottie is not showing the animation
我创建了一个 @IBOutlet weak var animationView: AnimationView!
然后在 ViewController 我添加了一个 UIView
将其 class 从 UIView
更改为 AnimationView
。连接插座后,我将此代码添加到 class:
的 viewDidLoad()
中
let animation = Animation.named("sticky", subdirectory: "Lottie-files")
animationView.animation = animation
animationView.loopMode = .loop
animationView.contentMode = .scaleAspectFill
然后在 viewDidAppear()
我添加了:
animationView.play()
但是当我 运行 时,它什么也没有显示。我也在终端看到这个:
[Storyboard] Unknown class AnimationView in Interface Builder file.
此警告已解决
但是还是没有出现动画。没有警告,没有错误,只是没有显示。
您应该在 viewDidAppear
或 after viewDidLoad
开始动画,例如:viewWillAppear
public override func viewDidLoad() {
super.viewDidLoad()
addAnimation(to: animationView, name: "sticky")
}
public override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
animationView.play()
}
private func addAnimation(to view: AnimationView, name: String) {
let animation = Animation.named(name, subdirectory: "Lottie-files")
view.animation = animation
view.loopMode = .loop
view.contentMode = .scaleAspectFill
}
奖金
确保这些
您应该将 Lottie
写入 Interface Builder
右侧栏中视图的 Identity Inspector
部分。
- 检查子目录路径。可能是因为 Xcode 无法在 Lottie-files 子目录中找到文件。尝试将其移动到主目录中并尝试。
根据 lottie 文档,您应该调用
play()
viewDidAppear 中的函数。
public override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
animationView.play()
}
请检查以下内容link
https://github.com/airbnb/lottie-ios/blob/master/Example/lottie-swift/ViewController.swift
NOTE : In some case you need to check sub directory problem
您需要添加文件夹引用
不是群组
有关此部分的更多信息,请查看以下内容 link。
http://www.thomashanning.com/xcode-groups-folder-references/
您可以通过编程方式设置
import Lottie
然后在视图控制器中添加动画视图,在故事板中设置 lottie 动画 -> animationView -> class -> AnimationView 和模块 -> Lottie
@IBOutlet weak var animationView: AnimationView!
//Initialise a Lottie view with frame
let customAnimationView = AnimationView(name: "Your lotti file name")
customAnimationView.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
//Do your configurations
customAnimationView.loopMode = .loop
customAnimationView.backgroundBehavior = .pauseAndRestore
//And play
customAnimationView.play()
animationView.addSubview(customAnimationView)
我创建了一个 @IBOutlet weak var animationView: AnimationView!
然后在 ViewController 我添加了一个 UIView
将其 class 从 UIView
更改为 AnimationView
。连接插座后,我将此代码添加到 class:
viewDidLoad()
中
let animation = Animation.named("sticky", subdirectory: "Lottie-files")
animationView.animation = animation
animationView.loopMode = .loop
animationView.contentMode = .scaleAspectFill
然后在 viewDidAppear()
我添加了:
animationView.play()
但是当我 运行 时,它什么也没有显示。我也在终端看到这个:
[Storyboard] Unknown class AnimationView in Interface Builder file.
此警告已解决
但是还是没有出现动画。没有警告,没有错误,只是没有显示。
您应该在
viewDidAppear
或 afterviewDidLoad
开始动画,例如:viewWillAppear
public override func viewDidLoad() { super.viewDidLoad() addAnimation(to: animationView, name: "sticky") } public override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) animationView.play() } private func addAnimation(to view: AnimationView, name: String) { let animation = Animation.named(name, subdirectory: "Lottie-files") view.animation = animation view.loopMode = .loop view.contentMode = .scaleAspectFill }
奖金
确保这些
您应该将
Lottie
写入Interface Builder
右侧栏中视图的Identity Inspector
部分。
- 检查子目录路径。可能是因为 Xcode 无法在 Lottie-files 子目录中找到文件。尝试将其移动到主目录中并尝试。
根据 lottie 文档,您应该调用
play()
viewDidAppear 中的函数。
public override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
animationView.play()
}
请检查以下内容link
https://github.com/airbnb/lottie-ios/blob/master/Example/lottie-swift/ViewController.swift
NOTE : In some case you need to check sub directory problem
您需要添加文件夹引用
不是群组
有关此部分的更多信息,请查看以下内容 link。
http://www.thomashanning.com/xcode-groups-folder-references/
您可以通过编程方式设置
import Lottie
然后在视图控制器中添加动画视图,在故事板中设置 lottie 动画 -> animationView -> class -> AnimationView 和模块 -> Lottie
@IBOutlet weak var animationView: AnimationView!
//Initialise a Lottie view with frame
let customAnimationView = AnimationView(name: "Your lotti file name")
customAnimationView.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
//Do your configurations
customAnimationView.loopMode = .loop
customAnimationView.backgroundBehavior = .pauseAndRestore
//And play
customAnimationView.play()
animationView.addSubview(customAnimationView)