小编Mar*_*son的帖子

SwiftUI 切换在 UI 测试中未切换

我无法进行 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)

xcode swift xcode-ui-testing swiftui

10
推荐指数
1
解决办法
834
查看次数

动画点在设备旋转后重新定位

我使用 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)

animation ios swift swiftui

5
推荐指数
1
解决办法
58
查看次数

在Swift中将CLLocationSpeed转换为long

我正试图在Swift中获得GPS速度.我已经把一切都搞定了,现在我正在尝试做一些计算.我想将MS"字符串"转换为KMH.所以我试图将类型转换为long,但我无法让它工作.

我试过这个:

var ms: long?
ms = LocationManager.location.speed
Run Code Online (Sandbox Code Playgroud)

但我得到"CLLocationspeed不能长期转换"

我是iOS编程和Swift的新手,所以我不知道如何解决这个问题.

cllocation ios swift

1
推荐指数
1
解决办法
2821
查看次数

标签 统计

swift ×3

ios ×2

swiftui ×2

animation ×1

cllocation ×1

xcode ×1

xcode-ui-testing ×1