gpt4 book ai didi

swiftui - 获取父尺寸 SwiftUI

转载 作者:行者123 更新时间:2023-12-04 12:42:24 34 4
gpt4 key购买 nike

有什么方法可以使用 SwiftUI 找到父 View 大小,我查看了文档和示例,似乎大多数(如果不是全部)都是硬编码大小,理想情况下我想找到父 View 的大小然后设置基于父级大小百分比的 subview 大小(可能在某些 swift helper 类中)例如

func getSizeFromParent(fractionHeight: Int, fractionWidth: Int) -> Size
{
var parentSize = // is there a way to get parent size somehow

var newHeight = parentSize.height * fractionHeight
var newWidth = parentSize.width * fractionWidth

return Size(newHeight, newWidth)
}

请注意,上面的代码并不是一个工作示例,只是伪代码

最佳答案

在 SwiftUI 中, parent 会向他们的 child 建议尺寸,但 children 决定如何使用它。他们可以忽略它,部分使用它,或者完全服从。

正如 Radagast 在您的问题中所评论的那样,GeometryReader 是 SwiftUI 用来在 View 树层次结构中向下传达大小的方式。

我写了一篇关于如何使用 GeometryReader 和 GeometryProxy 的详细文章,并包含了一些用例示例。 GeometryReader 与 .background() 和 .overlay() 修饰符结合使用也非常有用,因为它可以让您“窃取”另一个 View 的几何形状。

更多信息,请查看:https://swiftui-lab.com/geometryreader-to-the-rescue/

关于swiftui - 获取父尺寸 SwiftUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56954325/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com