实例方法
transaction(_:)
将给定的事务突变函数应用于视图中使用的所有动画。
声明
func transaction(_ transform: @escaping (inout Transaction) -> Void) -> some View
返回值
包装此视图并将转换应用于视图中使用的所有事务的视图。
参数
transform
应用于此视图中事务的转换。
详述
使用此修改器更改或替换视图中使用的动画。考虑由同时执行所有三个动画的按钮控制的三个相同的动画:
-
第一个动画将 “Rotation”
Text
视图旋转 360 度。 -
第二个使用
transaction(_:)
修改器通过在动画开始时添加两秒延迟来更改动画,然后将 “Rotation\nModified”Text
视图动画的旋转速度增加 2 倍。 -
第三个动画使用
transaction(_:)
修改器将影响“Animation\nReplaced”Text
视图的旋转动画替换为弹簧动画。
以下代码实现了这些动画:
struct TransactionExample: View {
@State var flag = false
var body: some View {
VStack(spacing: 50) {
HStack(spacing: 30) {
Text("Rotation")
.rotationEffect(Angle(degrees:
self.flag ? 360 : 0))
Text("Rotation\nModified")
.rotationEffect(Angle(degrees:
self.flag ? 360 : 0))
.transaction { view in
view.animation =
view.animation?.delay(2.0).speed(2)
}
Text("Animation\nReplaced")
.rotationEffect(Angle(degrees:
self.flag ? 360 : 0))
.transaction { view in
view.animation = .interactiveSpring(
response: 0.60,
dampingFraction: 0.20,
blendDuration: 0.25)
}
}
Button("Animate") {
withAnimation(.easeIn(duration: 2.0)) {
self.flag.toggle()
}
}
}
}
}
在 Image
或 Button
等叶视图上使用此修饰符,而不是在 VStack
或 HStack
等容器视图上使用。转换适用于该视图中的所有子视图;在容器视图上调用 transaction(_:)
可能会导致执行范围不受限制,具体取决于视图层次结构的深度。
可用版本
iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+
相关用法
- Swift Optional transformEffect(_:)用法及代码示例
- Swift Optional truncationMode(_:)用法及代码示例
- Swift Optional textSelection(_:)用法及代码示例
- Swift Optional toolbar(id:content:)用法及代码示例
- Swift Optional tint(_:)用法及代码示例
- Swift Optional toolbar(content:)用法及代码示例
- Swift Optional tabItem(_:)用法及代码示例
- Swift Optional textContentType(_:)用法及代码示例
- Swift Optional touchBarItemPresence(_:)用法及代码示例
- Swift Optional touchBar(_:)用法及代码示例
- Swift Optional task(priority:_:)用法及代码示例
- Swift Optional touchBar(content:)用法及代码示例
- Swift Optional toggleStyle(_:)用法及代码示例
- Swift Optional textInputAutocapitalization(_:)用法及代码示例
- Swift Optional touchBarCustomizationLabel(_:)用法及代码示例
- Swift Optional tag(_:)用法及代码示例
- Swift Optional task(id:priority:_:)用法及代码示例
- Swift Optional touchBarItemPrincipal(_:)用法及代码示例
- Swift Optional symbolVariant(_:)用法及代码示例
- Swift Optional popover(isPresented:attachmentAnchor:arrowEdge:content:)用法及代码示例
- Swift Optional mask(alignment:_:)用法及代码示例
- Swift Optional listSectionSeparatorTint(_:edges:)用法及代码示例
- Swift Optional badge(_:)用法及代码示例
- Swift Optional fullScreenCover(isPresented:onDismiss:content:)用法及代码示例
- Swift Optional keyboardType(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional transaction(_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。