跳到主要内容

画板

概览

画板是 Rive 文件中包含动画的顶层容器。每个 Rive 文件可以包含多个画板,每个画板可以包含多个动画和状态机。

选择画板

当前运行时

以下部分假设你已阅读了 Apple 概述。

获取画板

创建 File 后,你可以检索 Artboard 类型的信息并创建它们。

// 获取文件中所有画板名称
let artboardNames = try await file.getArtboardNames()
// 获取文件的默认画板
let defaultArtboard = try await file.createArtboard()
// 按名称从文件获取画板
let artboardByName = try await file.createArtboard("Artboard")

请注意,这些都是标记为 @MainActor 的异步抛出函数。由于它们是在 File 对象上调用的函数,任何抛出的错误都将是 FileError 类型。

这些函数抛出异常的一个例子是,如果你使用不在源 File 中的名称调用 .createArtboard(_:),将抛出 FileError.invalidArtboard(String)

使用画板

请记住,视图的 Rive 配置是 Rive 类型。在概述中,我们展示了使用文件初始化 Rive 对象,选择使用默认画板和状态机。但是,你可以使用特定画板初始化 Rive 对象:

let worker = try await Worker()
let file = try await File(source: .local("my_file", Bundle.main), worker: worker)
let artboardByName = try await file.createArtboard("Artboard")
let rive = try await Rive(file: file, artboard: artboardByName)

画板随后成为状态机的真实来源。有关更多详细信息,请参见状态机

旧版运行时

SwiftUI

struct AnimationView: View {
var body: some View {
RiveViewModel(
fileName: "my_rive_file",
artboardName: "My Artboard"
).view()
}
}

UIKit

class AnimationViewController: UIViewController {
@IBOutlet weak var riveView: RiveView!

var bananaVM = RiveViewModel(
fileName: "my_rive_file",
artboardName: "My Artboard",
)

override func viewDidLoad() {
bananaVM.setView(riveView)
}
}