swiftUI 中 frame 调用多次就会生成多层视图么

Color.white
    .frame(width: 38, height: 6)
    .cornerRadius(3)

    .frame(width: 130, height: 5, alignment: .leading)
    .background(Color(#colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)).opacity(0.08))
    .cornerRadius(3)
    .padding()

    .frame(width: 150, height: 24)
    .background(Color.black.opacity(0.1))
    .cornerRadius(12)

frame 调用了3次并且每次设置了对应的属性,然后生成如下的效果

image.png

是不是意味着每次调用frame就会生成一层视图,还是说swiftUI有其他的原理?

阅读 1.8k
1 个回答

39

frame()是一个modifier,modifier在SwiftUI中并不是真的修改了view。大多数情况下,当我们对某个view应用一个modifier的时候,实际上会创建一个新的view

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