我无法进行 UI 测试来切换 SwiftUI 表单中的 Toggle。似乎app.switches[*name*].tap()没有什么作用。还有其他人经历过吗?有想法吗?
下面的代码是该问题的演示。这是一个带有四个开关的简单形式,可根据开关位置生成一个 int 值。
我有以下 SwiftUI 视图:
struct ContentView: View {
@State var sw1: Bool = false
@State var sw2: Bool = false
@State var sw3: Bool = false
@State var sw4: Bool = false
var valueString: String {
var ret: Int = 0
if sw1 {
ret = ret + 1
}
if sw2 {
ret = ret + 2
}
if sw3 {
ret = ret + 4
}
if sw4 …Run Code Online (Sandbox Code Playgroud) 我使用 SwiftUI 创建了一个带有三个动画点的按钮。当屏幕几何形状以某种方式发生变化(设备旋转、键盘打开等)时,动画会变得一团糟。请参阅随附的视频。如何让圆圈保持相对于按钮的位置?
这是我的代码:
struct ContentView: View {
var body: some View {
Button(action: {}, label: {
AnimatedDot().frame(minWidth: 200, maxWidth: .infinity, minHeight: 20, maxHeight: 20)
}).foregroundColor(Color.blue)
.padding()
.background(Color.gray)
.cornerRadius(10.0)
.frame(minWidth: 0, maxWidth: 350)
}
}
struct AnimatedDot: View {
@State private var shouldAnimate = false
var body: some View {
HStack {
Circle()
.fill(Color.white)
.frame(width: 15, height: 15)
.scaleEffect(shouldAnimate ? 1.0 : 0.5)
.animation(Animation.easeInOut(duration: 0.3).repeatForever())
Circle()
.fill(Color.white)
.frame(width: 15, height: 15)
.scaleEffect(shouldAnimate ? 1.0 : 0.5)
.animation(Animation.easeInOut(duration: 0.3).repeatForever().delay(0.3))
Circle()
.fill(Color.white) …Run Code Online (Sandbox Code Playgroud) 我正试图在Swift中获得GPS速度.我已经把一切都搞定了,现在我正在尝试做一些计算.我想将MS"字符串"转换为KMH.所以我试图将类型转换为long,但我无法让它工作.
我试过这个:
var ms: long?
ms = LocationManager.location.speed
Run Code Online (Sandbox Code Playgroud)
但我得到"CLLocationspeed不能长期转换"
我是iOS编程和Swift的新手,所以我不知道如何解决这个问题.