在SwiftUI中有一种滚动到视图的方法。就像这个例子:
ScrollView {
ScrollViewReader { value in
Button("Jump to #8") {
// we scroll on button press
value.scrollTo(8, anchor: .top)
}
.padding()
ForEach(0..<100) { i in
Text("Example \(i
我想要一种简单的方式来更新UI状态与使用单一的状态变量。假设我有一个实例变量x和y的类位置。假设我有一个UI视图,如下所示…
@State var position: Position
var body: some View{
VStack{
Text("x: \(position.x)")
Text("y: \(position.y)")
}
}
我想维护一个位置的状态变量,它可以同时更新x和y,如上图所示。但是,正如您可能知道的那样,如果x和y值在位置变量中发生更改,则此代码将不会更新UI视图上的x和y值。
有
我想根据MVVM从视图模型中分离视图。如何在SwiftUI中创建模型?我读到,应该使用结构,而不是课堂。
举个例子,我有一个公园的模型,你可以在那里种植树木:
// View Model
struct Park {
var numberOfTrees = 0
func plantTree() {
numberOfTrees += 1 // Cannot assign to property: 'self' is immutable
}
}
// View
struct ParkView: View {
var park: Park
var body
我正在开发一个iOS应用程序,使用swiftUI和组合框架以及MVVM。我希望在一个名为LoginService的单独类中处理登录API请求,这个类在LoginViewModel中使用。现在,我想知道应该如何发布和观察视图和ViewModel之间的属性。我的意思是,ViewModel是一个ObservableObject,并且在视图中被观察到,但是由于我在处理服务类中的网络请求,LoginService应该如何通知LoginViewModel和LoginView数据已经接收并且视图应该被更新?
import Foundation
import Combine
class LoginViewM
我想问你一个关于视图中数学运算的用法的问题。
struct MyMenu: View {
var cnt: Int = 0
let colors: [Color] = [.red, .green, .blue]
var body: some View {
ForEach(colors, id: \.self) { color in
Text(color.description)
.padding()
.background(color)
c
假设我有一个绑定的字符串:
@Binding var string: String
但是,我希望操作该字符串,然后将其传递给子视图。
struct ViewOne: View {
@State var string: String = "Hello"
var body: some View {
ViewTwo(string: string + " World") // this is invalid, as ViewTwo requires Binding<String>
}
}
struct Vi
我有一个带有列表的视图,在列表中有一个与视图模型中的布尔值绑定的开关,如果我打开按钮,布尔值为真,反之亦然,问题是,如果我打开切换按钮,然后在我重新打开应用程序时输入背景,即使布尔值为真,切换也会被关闭,然后我回到先前的屏幕,当我打开切换按钮时,有什么方法可以避免这个问题吗?下面是列表代码:
List {
Section(header: Text("Flags")) {
ForEach(viewModel.flags.indices, id: \.self) { index in
Toggle(isOn:
我有一个故事板应用程序,现在从我现有应用程序中的SwiftUI视图开始。我有一个API调用来填充变量,例如:名称、姓氏、电子邮件和移动。
如何将UIKit变量传递到UIHostingController中以在SwiftUI视图中显示?
我的故事板UIKit文件:
import UIKit
import SwiftUI
class UserDashboardHostVC: UIViewController {
var name = String()
var surname = String()
var email = String()
var mobil
我厌倦了为动态选择器构建一个基于的多组分选择器。此选择器驻留在自己的.swift文件中。我不知道如何将所选内容保存在一个变量中,以便再次从另一个视图访问它。
到目前为止这是我的密码。我在下面用一个和它的错误消息标记了错误的解决方案。
import SwiftUI
struct DynamicPicker: View {
@ObservedObject var model = Model()
// var to store the selection
@State var selection: String = ""
var body: som
我有以下内部使用async/await的结构(View)。 struct CachedAsyncImage<I: View, P: View>: View {
@State var image: UIImage?
let content: (Image) -> I
let placeholder: () -> P
let url: URL?
public init(
url: URL?,
@ViewBuilder content: @escaping (Image) ->
Disclaimer:I'm是一名安卓开发人员,但他不得不深入研究KMM项目的Swift。
我有一个像这样设置的ViewModel:
class MyViewModel:ObservableObject {
...
var items Array = [Item]()
//the above array gets populated later on. Tried setting it as a state variable to be observed but for some reason the values never got updated
...
}
我已经能够从内容视