【问题标题】:Center Image in VStack leading alignmentVStack 前导对齐中的中心图像
【发布时间】:2021-01-18 06:52:34
【问题描述】:

我无法找出正确的解决方案,将Image 居中在VStack 内,对齐为.leading。我已经尝试并得到了这些结果,但有没有更有效的方法,而不是在 HStack 中添加两个 Spacer()

struct ContentView: View {
    var body: some View {
        ZStack {
            ScrollView {
                VStack (alignment: .leading, spacing: 10) {
                    Text("Title ")
                    HStack {
                        Spacer()
                        Image(systemName:"star.fill")
                            .resizable()
                            .frame(width: 20, height: 20, alignment: .center)
                        Spacer()
                    }
                    Divider()
                }
            }
        }
        .padding(.all)
    }
}

【问题讨论】:

    标签: swiftui


    【解决方案1】:

    这里有一个解决方案。使用 Xcode 12.1 / iOS 14.1 测试

    ScrollView {
        VStack (alignment: .leading, spacing: 10) {
            Text("Title ")
            Image(systemName:"star.fill")
                .resizable()
                .frame(width: 20, height: 20)
                .frame(maxWidth: .infinity, alignment: .center)
            Divider()
        }
    }
    

    【讨论】:

    • 看起来不错,谢谢@Asperi。添加两个frame 会皱眉吗?
    • 这些是不同的修饰符(尽管两者都称为框架)并且每个都提供新的视图。这就像将一个视图嵌入到另一个具有不同边界的视图中。
    • 好吧,这很有道理。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 2013-08-19
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    相关资源
    最近更新 更多