swiftui - SwiftUI 获取当前旋转值
问题描述
我想从 roation3DEffect 获取当前旋转值(以度为单位)。
如果值通过 -90 ,我想更改文本。
我如何获得价值?
到目前为止,这是我的代码:
@State var rotation = false
[…]
ZStack {
Rectangle()
.foregroundColor(.green)
Text("1")
}
.frame(width: 120, height: 60)
.rotation3DEffect(Angle(degrees: rotation ? -180 : 0), axis: (x: 10, y: 0, z: 0), anchor: .bottom)
.animation(.linear(duration: 0.25))
.onTapGesture {
self.rotation.toggle()
}
解决方案
你可以这样做:
struct ContentView: View {
@State private var degree = 0.0
@State private var text = "1"
var body: some View {
ZStack {
Rectangle()
.foregroundColor(.green)
Text(text)
}
.frame(width: 120, height: 60)
.rotation3DEffect(Angle(degrees: degree), axis: (x: 10, y: 0, z: 0), anchor: .bottom)
.onTapGesture {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.text = ""
}
withAnimation(.linear(duration: 1)) {
if self.degree == 0 {
self.degree += 180
} else {
self.degree -= 180
}
}
}
}
}
根据您的评论编辑了我的代码。
推荐阅读
- c# - EF Core 中的 SaveChanges() 在预期不会被调用时调用
- docker - 在 PHP 7.4 FPM Aplpine (Docker) 上安装 GMP 扩展
- javascript - 通过 GET 下载的 Ajax 文件在 Opera 中不起作用
- javascript - React js diff2html无法读取未定义的属性'getJsonFromDiff'
- javascript - 在 Office.onReady 上运行 Office 加载项失败
- oracle - 以下哪三个是最优的 Oracle SQL 计划?
- postgresql - 用数组值更新表中的记录
- arrays - 将数组/映射从 awk 返回到 bash
- css - 按键样式
- google-cloud-platform - 在谷歌云平台计算引擎上的虚拟机上连接 MariaDB 时出现 10060 错误