ios 将SwiftUI列表的各部分移动到更靠近的位置

rdlzhqv9  于 2023-01-14  发布在  iOS
关注(0)|答案(1)|浏览(101)

有没有可能以某种方式将Label的文本和系统映像移动得更近一些?
Label("MyString", systemImage: "wifi")

jc3wubiy

jc3wubiy1#

是的,有可能!
您只需要创建一个像这样的自定义LabelStyle...

struct MyLabelStyle: LabelStyle {
    
    let spacing: CGFloat
    
    func makeBody(configuration: Configuration) -> some View {
        HStack(spacing: spacing) {
            configuration.icon
            configuration.title
        }
    }
}

extension LabelStyle where Self == MyLabelStyle {
    static func mine(spacing: CGFloat) -> MyLabelStyle {
        MyLabelStyle(spacing: spacing)
    }
}

然后使用如下:

struct ContentView: View {
            
    var body: some View {
        VStack {
            Label("MyString", systemImage: "wifi")
                .labelStyle(.mine(spacing: 0))
            Label("MyString", systemImage: "wifi")
                .labelStyle(.mine(spacing: 10))
            Label("MyString", systemImage: "wifi")
                .labelStyle(.mine(spacing: 20))
        }
    }
}

相关问题