作者:雨过后放晴 | 来源:互联网 | 2022-10-21 15:50
我有 Button
struct ContentView : View {
var body: some View {
HStack {
Button(action: {}) {
Text("MyButton")
.color(.white)
.font(Font.system(size: 17))
}
.frame(height: 56)
.background(Color.red, cornerRadius: 0)
}
}
}
但是我想将其固定在supreview的边缘(跟踪到superview的尾随和领先)。像这样:
HStack
对我没有帮助,这是期望。固定frame
或宽度等于UIScree.size
不是灵活的解决方案。
1> DenFav..:
您需要使用.frame(minWidth: 0, maxWidth: .infinity)
修饰符
添加下一个代码
Button(action: tap) {
Text("Button")
.frame(minWidth: 0, maxWidth: .infinity)
.background(Color.red)
}
.padding([.leading, .trailing], 20)
填充修改器将使您在边缘有一些空间。
请记住,修饰符的顺序很重要。因为修饰符实际上是包裹视图的函数(它们不更改视图的属性)
2> Matteo Pacin..:
您可以使用GeometryReader
:https : //developer.apple.com/documentation/swiftui/geometryreader
根据苹果的说法:
此视图将灵活的首选大小返回到其父布局。
这是一种灵活的解决方案,因为它会根据父布局的变化而变化。