如何在SwiftUI中按比例设置高度和宽度?

问题描述 投票:0回答:1

我想知道是否可以根据height中的超级视图将widthSwiftUI的比例调整为任何UIControl

我们正在做的事情:

let txtFld = UITextField()
txtFld.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: self.view.frame.width/2, height: self.view.frame.height*0.1))

我知道我们可以通过使用Spacer().paddingedgeInsets来达到调整宽度的目的。但是height呢?我看过很多关于SwiftUI的教程,height都是静态的。即使在Apple网站上。 SwiftUI Tutorials

[如果有人了解如何设置与视图高度成比例的高度,请在此处分享。因为在某个时候我们需要那样。对于前。如果需要根据设备高度来制作按钮。 (假设在iPhone SE = 40,iPhone 8P = 55,iPhone X = 65)

swift height swiftui ios13 xcode11
1个回答
0
投票

您可以使用GeometryReader从父母那里获得该信息:

struct MyView: View {
    var body: some View {
        GeometryReader { geometry in
           /*
             Implement your view content here
             and you can use the geometry variable
             which contains geometry.size of the parent
             You also have function to get the bounds
             of the parent: geometry.frame(in: .global)
           */
        }
    }
}

[您可以为View提供一个自定义结构,并将其几何图形绑定到变量,以使其可以从View本身之外访问它的几何图形。

© www.soinside.com 2019 - 2024. All rights reserved.