为列表创建按钮
Create a button for a list
如何将(添加加载)按钮从列表中分离出来?我想根据需要将按钮放在其他地方,并将列表显示在底部或中心。当我从列表中删除“添加加载”按钮时,列表没有显示。有什么办法,我可以为列表创建一个固定大小,这样它就不会占据整个屏幕,只出现在屏幕的特定大小。
import SwiftUI
struct MainView: View {
@State var br = Double()
@State var loadpay = Double()
@State var gp: Double = 0
@State var count: Int = 1
@State var listcheck = Bool()
@StateObject var taskStore = TaskStore()
func addNewToDo() {
taskStore.tasks.append(Task(id: String(taskStore.tasks.count + 1), toDoItem: "load \(count)", amount: Double(gp)))
}
func stepcount() {
count += 1
}
var body: some View {
Form {
HStack(spacing: 15) { Button(String(format: "Add Load"), action: { print("Load is ")
gp += loadpay
})
Button(action: { addNewToDo(); stepcount() }, label: {
Text("")
})
}
ForEach(self.taskStore.tasks) {
task in
Text(task.toDoItem)
}
}
}
}
struct Task: Identifiable {
var id = String()
var toDoItem = String()
var amount: Double = 0
}
class TaskStore: ObservableObject {
@Published var tasks = [Task]()
}
您可以将 Form
包裹在 VStack
中,并让 Button
成为 Form
的兄弟元素:
struct MainView: View {
@State var br = Double()
@State var loadpay = Double()
@State var gp: Double = 0
@State var count: Int = 1
@State var listcheck = Bool()
@StateObject var taskStore = TaskStore()
func addNewToDo() {
taskStore.tasks.append(Task(id: String(taskStore.tasks.count + 1), toDoItem: "load \(count)", amount: Double(gp)))
}
func stepcount() {
count += 1
}
var body: some View {
VStack {
Button(action: { gp += loadpay }) {
Text("Add Load")
}
Button(action: {
addNewToDo()
}) {
Text("Add to do")
}
Form {
ForEach(self.taskStore.tasks) {
task in
Text(task.toDoItem)
}
}
}
}
}
如何将(添加加载)按钮从列表中分离出来?我想根据需要将按钮放在其他地方,并将列表显示在底部或中心。当我从列表中删除“添加加载”按钮时,列表没有显示。有什么办法,我可以为列表创建一个固定大小,这样它就不会占据整个屏幕,只出现在屏幕的特定大小。
import SwiftUI
struct MainView: View {
@State var br = Double()
@State var loadpay = Double()
@State var gp: Double = 0
@State var count: Int = 1
@State var listcheck = Bool()
@StateObject var taskStore = TaskStore()
func addNewToDo() {
taskStore.tasks.append(Task(id: String(taskStore.tasks.count + 1), toDoItem: "load \(count)", amount: Double(gp)))
}
func stepcount() {
count += 1
}
var body: some View {
Form {
HStack(spacing: 15) { Button(String(format: "Add Load"), action: { print("Load is ")
gp += loadpay
})
Button(action: { addNewToDo(); stepcount() }, label: {
Text("")
})
}
ForEach(self.taskStore.tasks) {
task in
Text(task.toDoItem)
}
}
}
}
struct Task: Identifiable {
var id = String()
var toDoItem = String()
var amount: Double = 0
}
class TaskStore: ObservableObject {
@Published var tasks = [Task]()
}
您可以将 Form
包裹在 VStack
中,并让 Button
成为 Form
的兄弟元素:
struct MainView: View {
@State var br = Double()
@State var loadpay = Double()
@State var gp: Double = 0
@State var count: Int = 1
@State var listcheck = Bool()
@StateObject var taskStore = TaskStore()
func addNewToDo() {
taskStore.tasks.append(Task(id: String(taskStore.tasks.count + 1), toDoItem: "load \(count)", amount: Double(gp)))
}
func stepcount() {
count += 1
}
var body: some View {
VStack {
Button(action: { gp += loadpay }) {
Text("Add Load")
}
Button(action: {
addNewToDo()
}) {
Text("Add to do")
}
Form {
ForEach(self.taskStore.tasks) {
task in
Text(task.toDoItem)
}
}
}
}
}