标签: swiftui-form

SwiftUI:TextField 内的填充

我有一个TextFieldSwiftUI 。当我将填充应用到它时

TextField(text, text: $value)
    .padding()
Run Code Online (Sandbox Code Playgroud)

填充位于 的点击区域之外TextField,即点击填充不会使文本字段成为焦点。

TextField我希望即使用户点击填充也能够聚焦。

ios swiftui swiftui-form

17
推荐指数
2
解决办法
2万
查看次数

SwiftUI 如何在关闭时将数据传递到上一个屏幕

我想将关闭时的数据传递presentViewController到上一个屏幕。在这里,我想使用块将数据作为 UIKitApp 传递到上一个屏幕。但我不知道传递数据。options我们必须传回哪些数据?

struct ContentView: View {
    @State var showModel = false
    var body: some View {
        VStack {
            Button(action: {
                showModel.toggle()
            }, label: {
                Text("Show filters")
            }).sheet(isPresented: $showModel, content: {
                FilterView()
            })
        }
    }
}

struct FilterView: View {
    @Environment(\.presentationMode) var presentationMode

    var onDismiss: ((_ model: Filter) -> Void)?

    var body: some View {
        
        VStack {
            Button(action: {
                // Pass data from here to ContentView
                let filter = Filter(fromDate: "10/07/2021", toDate: "12/07/2021")
                onDismiss?(filter)
                presentationMode.wrappedValue.dismiss()
            }, …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui swiftui-form

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

SwiftUI,iOS 14,表单中的键盘避免{ TextEditor() }

我在一个简单的Form{}. 自动键盘回避不起作用。下面是一个带有TextEditor(). 运行时,键盘位于输入字段的顶部,要求用户滚动视图以便输入位置。删除Form{}和自动键盘避免工作。我是否缺少在 Form{} 中执行的某些操作才能获得此行为?

import SwiftUI
struct ContentView: View {
    @State private var stopLocation: String = ""
    var body: some View {
        Form {
            let desc = "\n\n\n\n\n\n\n\n\n\n\n\nEnter Location"
            Text(desc)
            VStack {
                TextEditor(text: $stopLocation)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui swiftui-form keyboard-avoidance

9
推荐指数
0
解决办法
356
查看次数

FormView 中的 SwiftUI 故障

我在Form实现中遇到了一些奇怪的故障。我不确定这是一些实现错误还是 SwiftUI 本身的错误。

所以基本上我想做的是典型的“ToDo/TimeTracking”应用程序。我想创建一个引用项目实体的新任务实体。因此,我创建了一个Form可以选择项目、设置任务的标题和注释以及开始和结束日期的地方。

但是现在我遇到了一些视觉故障。

  1. 当我选择一个项目时 Picker我将导航到一个单独的视图(如预期的那样),但是在页面转换动画完成后,我可以从中选择项目的列表向上移动一点。
  2. 选择“已完成”然后从DatePicker拾取器中选择日期时,在隐藏之前,在视图内部的拾取器故障。

可以使用以下代码片段实现最小可行示例:

mport SwiftUI

struct Project {
    let id: Int
    let title: String
}

let projects = [Project(id: 0, title: "Hello"),Project(id: 1, title: "World")]

struct ContentView: View {

     @State private var showingCreateTask = false

    var body: some View {
        NavigationView {
             Text("Hello, World!")
            .navigationBarTitle("Test")
                .navigationBarItems(trailing: Button(action: { self.showingCreateTask.toggle() }) {
                    Image(systemName: "plus").imageScale(.large)
                })
                .sheet(isPresented: self.$showingCreateTask) {
                    CreateTaskView(projects: projects)
            }
        }
    }
}

struct CreateTaskView: View { …
Run Code Online (Sandbox Code Playgroud)

swift swiftui swiftui-form

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

SwiftUI 表单选择器只显示一次

我正在使用 SwiftUI,目前正在使用 Picker 构建表单。

import SwiftUI

struct ContentView: View {
  private let names = ["Bill", "Peter", "Johan", "Kevin"]
  @State private var favoritePerson = "Bill"

  var body: some View {
    NavigationView {
      Form {
        Picker("Favorite person", selection: $favoritePerson) {
          ForEach(names, id: \.self) { name in
            Text(name)
          }
        }
      }
      .navigationBarTitle("Form", displayMode: .inline)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

第一次点击“最喜欢的人”行时,选择器显示正常,点击其中一个名字会将您带回表单。但是第二次点击表单行不会做任何事情:您没有转到选择器,该行保持突出显示但没有任何反应。如果这是 SwiftUI 错误,是否有已知的解决方法?(我已经需要使用一个小的导航栏标题来解决 Picker UI 错误,否则它的内容在显示时会向上移动??)

swiftui swiftui-form

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

SwiftUI 电子邮件验证

如何使用 swiftUI 完成电子邮件验证?

TextField("Please enter your e-mail", text: self.$email)
    .modifier(ClearButton(text: $email))
    .font(.headline)
    .padding(10)
    .foregroundColor(.black)
    .background(Color.white)
    .frame(width: 300, height: 40, alignment: .center)
    .cornerRadius(20)
Run Code Online (Sandbox Code Playgroud)

email-validation ios swift swiftui swiftui-form

7
推荐指数
2
解决办法
6993
查看次数

无法在表单中控制动画?

这不是意味着可以控制表单视图内发生的动画吗?我这里有一个 Playground 来演示这个问题,并附有一张发生情况的 gif 动图。如您所见,我在第二个动画视图上的过渡完全被忽略,并且我必须手动放慢视频速度,因为持续时间也被忽略。

我并不是真的想要缩放过渡,这只是为了证明无论我在那里放置什么,动画都是相同的。这是预期的结果,还是一个错误?或者我只是做了一些完全错误的事情?

我也不清楚为什么 VStack 的动画处理方式与简单的文本字段如此不同,后者可以很好地向下滑动,而 VStack 似乎得到了 .move 和 .opacity 的某种组合。

动画演示

import SwiftUI
import PlaygroundSupport


struct ContentView: View {

    @State var showGoodAnimation = false
    @State var showBadAnimation = false

    var body: some View {
        Form {
            Toggle(isOn: self.$showGoodAnimation.animation(.easeInOut(duration: 1))) {Text("Yay!")}
            if self.showGoodAnimation {
                Text("I animate beautifully.")
            }
            Toggle(isOn: self.$showBadAnimation.animation(.easeInOut(duration: 1))) {Text("Boo!")}
            if self.showBadAnimation {
                VStack {
                    Text("Hi.").padding()
                    Text("I'm a hot mess.").padding()
                }
                .frame(height: 250)
                .transition(.scale)
            }
            Text("I'm just always here.")
        }
    }
}

PlaygroundPage.current.setLiveView(ContentView())
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui swiftui-form

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

减少 SwiftUI 各部分之间的表单间距

我正在尝试使用 SwiftUI 制作一个笔记应用程序,并且我想显示类似于Apollo Reddit 应用程序的笔记。

\n\n

它显示帖子的方式没有什么特别的,它只是使用类似于列表的界面显示帖子GroupedListStyle(),但各部分之间的间距较小。

\n\n

我尝试了很多技巧来减少这个间距,但似乎都不起作用。

\n\n

长话短说

\n\n

我有这个在此输入图像描述

\n\n

我想要这个:\n在此输入图像描述

\n\n

任何帮助表示赞赏。提前致谢!

\n\n

这是我的代码

\n\n
import SwiftUI\n\nstruct NotesView: View {\n\n    let array = [\n        Note(title: "Mi pana miguel letra", content:\n        """\n        [Intro: Keyan JRN & Producer Tag]\n        El pana Miguel, yah, ey\n        El pana Miguel, yah, ey (Snorkatje)\n        Mi pana, mi pana, yeah\n        Mi pana,\xe2\x80\x85mi\xe2\x80\x85pana, yeah\n        Mi pana,\xe2\x80\x85mi pana, yeah, eh-eh\n        Uh-uh-uh-uh-uh-uh\n\n        [Estribillo]\n        Ha-ha-hace un rato\xe2\x80\x85conoc\xc3\xad al pana …
Run Code Online (Sandbox Code Playgroud)

ios swiftui swiftui-list swiftui-form

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

SwiftUI中的Form,像IOS中使用swiftUI的设置一样定位用户图片

如何将图像放入swiftUI的Form中才能达到与附图相同的效果?

在此输入图像描述

我尝试过这段代码,但不起作用:

struct UserDetails: View {
    @ObservedObject var dm : DataManager
    @Binding var userLoggato : UserModel?
    var body: some View {
        Form{
            HStack{
                Image(systemName: "person")
            }
            Text(userLoggato?.name ?? "")
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

如果我在图像之间使用间隔物,我会得到另一条白线,图像位于内部。我希望我的图像具有灰色背景并像附图中那样定位。

ios swift swiftui swiftui-form

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

SwiftUI 工具栏被键盘附件视图覆盖

您好,我在 Xcode 12.4 (iOS 14) 中使用 SwiftUI 需要解决一个棘手的问题:假设我有Form许多部分和TextEditors,此表单具有.toolbar带有一些内容(本例中为按钮)的修饰符(底部栏)。所有的一切都被包裹在里面NavigationView。一旦用户单击其中之一TextEditor,底部工具栏就会被键盘的系统附件视图覆盖。请注意,我根本不修改安全区域。任何人都知道下面的代码有什么问题吗?

struct ContentView: View {
    @State var narrative: String = ""

    var body: some View {
        NavigationView {
            Form {
                Section(header: Text("Test 1")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Test 2")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Test 3")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Test 4")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Test 5")) {
                    Text("Bla Bla Bla")
                }
                Section(header: …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui swiftui-form swiftui-navigationview

6
推荐指数
0
解决办法
451
查看次数