小编Cel*_*ina的帖子

为什么在 swiftui 中绑定到 Picker 不再起作用?

当我在模拟器或画布中运行选择器代码时,选择器总是返回第一个带有动画的选项或只是冻结。这发生在上周四/周五。所以我检查了一些旧的简单代码,在那之前它可以工作,但对我来说也不起作用。这是简单的旧代码。它在 beta 3、4 和 5 中不再起作用。

struct PickerView : View {
    @State var selectedOptionIndex = 0

    var body: some View {
        VStack {
            Text("Option: \(selectedOptionIndex)")
            Picker(selection: $selectedOptionIndex, label: Text("")) {
                Text("Option 1")
                Text("Option 2")
                Text("Option 3")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我较新的代码中,我使用了@ObservedObject,但在这里它也不起作用。此外,我没有收到任何错误,并且它可以构建和运行。感谢您的任何指点。

---- EDIT -----请先看答案

在帮助之后,我可以使用.tag()后面的所有Text()like Text("Option 1").tag(),它现在采用初始值并在视图内更新它。如果我@ObservedObject在这里使用:

struct PickerView: View {
    @ObservedObject var data: Model

    let width: CGFloat
    let height: CGFloat

    var body: some View {
        VStack(alignment: .leading) {
            Picker(selection: …
Run Code Online (Sandbox Code Playgroud)

swiftui

11
推荐指数
2
解决办法
5310
查看次数

如何在带有其他组件的 ScrollView 或 VStack 中完全显示 Swiftui 中的选择器?

一旦我将 Picker 放入 ScrollView 或 VStack 并且其中有更多代码(如 ForEach 循环),则仅显示 Picker-label 。

在此处输入图片说明 我想知道为什么,因为在 Scrollview 之外或单独它显示正确。

这是代码:

@State private var exercises = ["Unterarmstütz", "Dehnen", "Kopfstand", "Handstand"]
@State private var selectedExercise = "Plank"
@State private var selectedTimeIndex = 60

var body: some View {
    VStack {
       ScrollView {
            Picker(selection: $selectedTimeIndex, label: Text("select Time")) {
                Text("Option 1")
                Text("Option 2")
                Text("Option 3")
            }
            ForEach(exercises.identified(by: \.self)) { exercise in
                Button(action: {
                    self.selectedExercise = String("exercise")
                }) {
                    Text("exercise")
                }
            }

        }
    }

}
Run Code Online (Sandbox Code Playgroud)

watchos swiftui

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

如何在 swiftUI 中为 WatchOS 使用 TextInput

通常我会presentTextInputControllerWithSuggestions()用来显示 TextInput 字段。但这在 swiftUI 中不可用,因为它是 WKInterfaceController 的一个函数。我必须为此使用 WKInterfaceController 吗?我在文档中找不到任何内容。

apple-watch watchkit swiftui

5
推荐指数
2
解决办法
1074
查看次数

标签 统计

swiftui ×3

apple-watch ×1

watchkit ×1

watchos ×1