我是SwiftUI的初学者,我对.Frame()修饰符有一些误解.
我想创建一个右对齐的图像,所以我这样做:
Image(systemName: "xmark")
.frame(maxWidth: .infinity, alignment: .leading)
.padding(5)
.background(.gray)
.mask(Circle())
.padding()
但这张图片出现在我屏幕的中央.我将我的代码更改为:
Image(systemName: "xmark")
.padding(5)
.background(.gray)
.mask(Circle())
.frame(maxWidth: .infinity, alignment: .leading)
.padding()
它以我想要的方式工作,但我很困惑为什么这段代码能工作.有人能给我解释一下为什么这段代码能用而前一段不行吗?
我还看到人们会这样写代码:
VStack {
...
}
.padding()
.frame(maxWidth: 200)
.frame(maxWidth: .infinity, alignment: .leading)
这说得通吗?我们不是在用第二个.Frame()修饰符重新定义MaxWidth吗?