我正在尝试使用一个变量并在 swiftui 的 foreach 中进行修改。
下面是我正在使用的代码。请让我知道如何修改视图主体内的值。
struct SearchView : View {
var chatmember = ChatMember(with: JSON())
var body: some View{
VStack(spacing: 10){
VStack{
prefView()
.padding(.bottom, 30)
Text("Tap to start making friend")
}
ScrollView(.horizontal, content: {
HStack(spacing: 10) {
ForEach(userDataList) { user in
chatmember = ChatMember(hashValue: 0, email: "", fullName: "", online: "", userId: user.userId, userImage: "", deviceToken: "", deviceType: .iOS, deviceId: "")
NavigationLink(destination: ChatView(chatMember: self.chatmember)){
SearchUser()
}
}
}
.padding(.leading, 10)
})
.frame(width: 300, height: 400)
Spacer()
}
.navigationBarTitle("Profile",displayMode: .inline) …Run Code Online (Sandbox Code Playgroud) 我正在使用 SwiftUi 版本 2 进行应用程序开发。我遇到了 SwiftUI 中可用文本字段的问题。我不想再使用 UITextField 了。我想限制文本字段中的字符数。我搜索了很多,找到了一些与此相关的答案,但这些答案不适用于 SwiftUI 版本 2。
class textBindingManager: ObservableObject{
let characterLimit: Int
@Published var phoneNumber = "" {
didSet {
if phoneNumber.count > characterLimit && oldValue.count <= characterLimit {
phoneNumber = oldValue
}
}
}
init(limit: Int = 10) {
characterLimit = limit
}
}
Run Code Online (Sandbox Code Playgroud)
struct ContentView: View {
@ObservedObject var textBindingManager = TextBindingManager(limit: 5)
var body: some View {
TextField("Placeholder", text: $textBindingManager.phoneNumber)
}
}
Run Code Online (Sandbox Code Playgroud) 我想使用 SwiftUI 在 NavigationBar 的 titleView 中设置图像。我们可以使用 UIKit 来做到这一点,如下所示:
navigationItem.titleView = UIImageView(image: UIImage(named: "logo"))
Run Code Online (Sandbox Code Playgroud)
这就是我们在 UIKit 中的做法。
我如何使用 SwiftUI 来实现这一目标?