SwiftUI - 视图大小
视图大小表示视图的高度和宽度。使用视图大小,我们可以确定视图在其父视图中占用多少空间,这有助于开发人员如何调整父视图中的多个视图。我们可以分别控制视图的宽度和高度。在 SwiftUI 中,我们可以使用固定大小或动态大小,这完全取决于开发人员的选择。
SwiftUI 中的固定大小
固定大小是不会改变的大小。在 SwiftUI 中,我们可以使用 frame() 修饰符来实现。此修饰符控制子视图或父视图的大小和宽度。它是调整视图大小最常用和最直接的修饰符。使用此修饰符,我们可以调整宽度或高度,或者宽度和高度。我们还可以借助 frame() 修饰符设置视图的对齐方式。
语法
以下是语法 −
func frame( width: CGFloat? = nil, height: CGFloat? = nil, alignment: Alignment = .center ) -> some View
参数
以下是frame()修饰符 −支持的参数
width:用于设置固定宽度。
height:用于设置固定高度。
alignment:用于设置视图的对齐方式。
示例
以下SwiftUI程序设置矩形视图的宽度和高度。
import SwiftUI
struct ContentView: View {
var body: some View {
ZStack{
Rectangle()
.fill(.orange)
// Setting the width and height
.frame(width: 250, height: 90)
Text("TutorialsPoint")
.font(.title2)
.foregroundStyle(.white)
.bold()
}
}
}
#Preview {
ContentView()
}
输出
SwiftUI 中的动态大小
在 SwiftUI 中,我们可以指定视图的动态大小。这可以通过使用 GeometryReader 来实现。GeometryReader 用于创建布局,其中子视图的大小根据父视图中的可用空间进行调整。它提供了一个包含父视图大小和位置的几何对象,因此我们可以通过操作几何对象来获取子视图的大小。
语法
以下是语法 −
geometryReaderObject.size.width geometryReaderObject.size.height
示例
以下 SwiftUI 程序设置矩形视图的宽度和高度。
import SwiftUI
struct ContentView: View {
var body: some View {
GeometryReader{myGeometry in
VStack{
Text("Width pf parent view: \(myGeometry.size.width)")
Text("Height pf parent view: \(myGeometry.size.height)")
Rectangle().fill(.mint)
// Dynamic sizes
.frame(width: myGeometry.size.width/2, height: myGeometry.size.height/2)
}
}
}
}
#Preview {
ContentView()
}
输出

