【问题标题】:How to get width and height of view?如何获得视图的宽度和高度?
【发布时间】:2020-12-29 12:44:43
【问题描述】:

我需要知道当前视图的宽度和高度,我设法使用以下代码获取它,但它只有在我手动选择 NavigationView 时才有效。 我还尝试在另一个视图中包含 GeometryReader { ... } 部分,但它会修改其他元素的位置。 我的问题是,有没有办法自动调用 NavigationView(只是为了获取视图大小)并返回主视图而无需手动操作? 还是有其他方法可以获取当前视图的宽度和高度?

struct NavigationView : View {
    @ObservedObject var myMaze = Maze.sharedInstance
    var body : some View {
        GeometryReader { geometry in
            Path { path in
                myMaze.viewWidth = geometry.size.width
                myMaze.viewHeight = geometry.size.height
            }
        }
    }
}

【问题讨论】:

标签: swiftui


【解决方案1】:

试试这个代码,它适用于我的情况: 身高:

view.getMeasuredHeight()

对于宽度:

view.getMeasuredWidth()

注意:此代码在 onCreate 中不起作用,因为尚未绘制视图,请根据需要添加侦听器或计时器。

【讨论】:

  • 我试图将其放入 init() 中,但出现错误“'MapView' 类型的值没有成员'getMeasuredWidth'”。我该如何实施?我不知道如何使用监听器或计时器。
  • 假设您想使用计时器。您可以启动计时器以每 100 毫秒获取一次视图的高度和宽度。
猜你喜欢
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
  • 2011-11-26
  • 2015-08-16
  • 1970-01-01
  • 1970-01-01
  • 2011-03-20
  • 2012-11-23
相关资源
最近更新 更多