xcode 将图像放置在列表内文本的左侧

r1zk6ea1  于 2023-02-13  发布在  其他
关注(0)|答案(1)|浏览(123)

我有下面的代码,目前给我以下错误:

代码为:

import SwiftUI

struct EmailList: Identifiable {
    var img: Image
    var id: String
    var isOn = false
}

struct ContentView: View {
    @State var lists = [
        EmailList(img: Image(systemName: "car.fill"), id: "Monthly Updates", isOn: true),
        EmailList(img: Image(systemName: "car.fill"), id: "News Flashes", isOn: false),
        EmailList(img: Image(systemName: "car.fill"), id: "Special Offers", isOn: true)
    ]
    
    
    var body: some View {
        Form {
            Section {
                ForEach($lists) { $list in
                    Toggle(list.img, list.id, isOn: $list.isOn)
                }
            }            
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

它在手表上产生了这样的结果:

我不确定它在说什么/想让我做什么。我看到的大多数例子都是这种格式,所以我不确定这是因为它只是一个iPhone应用程序还是其他什么。
所有变量都与类一起填充,以将图像定义为第一个参数,然后是名称(id),最后是true或false。
我的目标是让它看起来像这样:

falq053o

falq053o1#

您可以使用Label作为Toggle的标签来实现这一点,例如:

struct ContentView: View {
    @State var lists = [
        EmailList(img: Image(systemName: "car.fill"), id: "Monthly Updates", isOn: true),
        EmailList(img: Image(systemName: "car.fill"), id: "News Flashes", isOn: false),
        EmailList(img: Image(systemName: "car.fill"), id: "Special Offers", isOn: true)
    ]
    
    
    var body: some View {
        Form {
            Section {
                ForEach($lists) { $list in
                    Toggle(isOn: $list.isOn) {
                        Label {
                            Text(list.id)
                        } icon: {
                            list.img
                        }
                    }
                }
            }
        }
    }
}

相关问题