【问题标题】:Get Parent Size SwiftUI获取父大小 SwiftUI
【发布时间】:2019-07-09 14:00:59
【问题描述】:

有什么方法可以使用 SwiftUI 找到父视图大小,我查看了文档和示例,似乎大多数(如果不是全部)都是硬编码大小,理想情况下我想找到父视图的大小然后根据父级大小的百分比设置子视图大小(可能在一些快速助手类或其他东西中),例如

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 中使用 Geometry Reader,this 对你很有用

标签: swiftui


【解决方案1】:

在 SwiftUI 中,父母会向孩子建议尺寸,但孩子自己决定如何处理。他们可以忽略它,部分使用它,或者完全听话。

正如 Radagas 在您的问题中所评论的那样,GeometryReader 是 SwiftUI 用来在视图树层次结构中传递大小的方式。

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

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

【讨论】:

  • 非常好的文章也顺便说一句!又好又轻,但有我需要的所有信息
  • 谢谢!我在任何地方都找不到该信息(特别是查看首选项),因此在努力理解并最终破解它之后,我决定贡献 ;-) 干杯。
  • @kontiki,你能看看这个问题stackoverflow.com/questions/65384646/…吗?
猜你喜欢
  • 1970-01-01
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 2017-11-15
  • 1970-01-01
  • 2023-04-02
  • 2021-04-15
  • 1970-01-01
相关资源
最近更新 更多