swiftUI 中 padding 调用时间不同渲染的样式也不同

case1:
代码

struct MenuView: View {
    var body: some View {
        VStack(spacing: 16) {
            MenuRow(title: "Account", icon: "gear")
            MenuRow(title: "Billing", icon: "creditcard")
            MenuRow(title: "Sign out", icon: "person.crop.circle")
        }
        .frame(maxWidth: .infinity)
        .frame(height: 300)
        .background(Color.white)
        .clipShape(RoundedRectangle(cornerRadius: 30, style: .continuous))
        .shadow(radius: 20)
        .padding(20)
    }
}

样式:
image.png

case2

struct MenuView: View {
    var body: some View {
        VStack(spacing: 16) {
            MenuRow(title: "Account", icon: "gear")
            MenuRow(title: "Billing", icon: "creditcard")
            MenuRow(title: "Sign out", icon: "person.crop.circle")
        }
        .frame(maxWidth: .infinity)
        .frame(height: 300)
        .padding(20)
        .background(Color.white)
        .clipShape(RoundedRectangle(cornerRadius: 30, style: .continuous))
        .shadow(radius: 20)
    }
}

样式:
image.png

我只改了一下padding的调用顺序。

问题:

1、padding 或者 swiftui modifier 是如何渲染页面的,调用顺序不同如何影响到页面的样式?
2、swiftui 对modifier的调用顺序这么严格,有没有什么规律可循,在开发中如何确定调用顺序?

求大佬答疑解惑,不胜感激!

阅读 1.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题