如何在swiftUI中相对于视图左上角定位视图?“位置”修饰符相对于视图的中心坐标移动视图。因此.position(x: 0, y: 0)
将视图中心坐标放置在屏幕的左上角。
我想在屏幕的左上角放置一个视图的左上角坐标,如何操作?
struct HomeView: View {
var body: some View {
VStack(alignment: .leading) {
Text("Top Text")
.font(.system(size: 20))
.fontWeight(.medium)
Text("Bottom Text")
.font(.system(size: 12))
.fontWeight(.regular)
}
.position(x: 0, y: 0)
}
}
目前,我的视图的左半部分被切断了屏幕,我该如何防止这种情况?另外,如何相对于安全区域对齐?
我想念UIKit😪
4条答案
按热度按时间hs1ihplo1#
@Asperi的回答会解决问题。但是,我认为我们应该使用
Spacer()
,而不是Color.clear
和ZStack
。Spacer
专门为这些场景设计,使代码更容易理解。SwiftUI布局系统与UIKit不同。
它要求每个子视图根据其父视图的边界计算自己的大小。接下来,要求每个父级在其自己的边界内定位其子级。
https://www.hackingwithswift.com/books/ios-swiftui/how-layout-works-in-swiftui
8qgya5xd2#
如果我正确理解你的目标,
.position
并不适合它。SwiftUI布局在没有硬编码的情况下工作得更好。这是一个可能的解决方案。使用Xcode 11.4 / iOS 13.4测试
sxissh063#
您可以用途:
因此,您将相对于当前对象位置。
https://developer.apple.com/documentation/swiftui/gaugestyleconfiguration/currentvaluelabel-swift.struct/offset(x:y:)
2ic8powd4#
框架也可以堆叠。