问题标签 [geometryreader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
828 浏览

ios - 在 SwiftUI iOS 14 中旋转视图

我想旋转我的视图,以便它改变它的框架并在旋转时覆盖整个屏幕。我已经尝试了所有类型的旋转以及不同的锚点。这在 iOS 13 中运行良好,但在 iOS 14 中,视图和边距之间存在奇怪的差距。

常规视图

进入全屏时

0 投票
3 回答
1321 浏览

swift - SwiftUI Nested GeometryReader - 破坏 UI

所以我试图理解为什么我的子视图(TopView)有奇怪的调整大小问题。

这是示例

在此处输入图像描述

我试图设置一个.fixedSize()这样的:

在此处输入图像描述

但它不完全适合文本,所以我不确定这是否是正确的解决方案。你们有什么想法吗?

0 投票
0 回答
850 浏览

swiftui - SwiftUI iOS14 GeometryReader 框架尺寸无效

我的 GeometryReader 在 iOS13 中运行良好,但现在在 iOS14 中出现线程问题。

“无效的框架尺寸(负或非有限)。”

我打印了读者应该回馈的尺寸,看起来不错。

该应用程序基本上仍在工作,但看起来有点奇怪,因为引入了一些填充。

有谁知道如何解决这个问题?

0 投票
7 回答
11429 浏览

swiftui - iOS 14 帧尺寸无效(负数或非有限)

我的应用程序使用带有一些填充的 GeometryReader 在 NavigationView 内设置视图框架尺寸。

从 iOS 14 开始,我收到以下错误消息:

无效的框架尺寸(负或非有限)

这是一些要测试的示例代码:

删除 NavigationView 可以解决问题,但我需要 NavigationView 中容器视图的当前宽度和高度。

有什么建议吗?

0 投票
1 回答
547 浏览

swiftui - 使用几何阅读器使矩形居中

我正在尝试使用 GeometryReader 制作卡片视图(用于卡片游戏)。这张卡上会有 3 个形状。我正在尝试使用 GeometryReader 将这 3 个形状居中(从第一个形状矩形开始),但它不起作用。我究竟做错了什么?

这就是我想要的样子:这就是我想要的样子

以下是它的实际外观:以下是它的实际外观

0 投票
1 回答
1624 浏览

swiftui - SwiftUI ScrollView VStack GeometryReader 高度被忽略

我想在 VStack 之外使用 ScrollView,以便在 VStack 扩展超出屏幕大小时我的内容是可滚动的。现在我想GeometryReader在 VStack 中使用它会导致问题,我只能通过设置 GeometryReader 框架来解决,考虑到我使用阅读器来定义视图大小,这并没有真正帮助我。

这是没有 ScrollView 的代码,它运行良好:

这将产生以下图像:

没有滚动视图

自定义大小的标签应该是全宽,但高度是宽度的一半。现在,如果我将相同的代码包装在 ScrollView 中,就会发生这种情况:

带滚动视图

不仅所有东西都变小了,而且自定义尺寸标签的高度也被忽略了。如果我设置 GeometryReader 的高度,我可以调整该行为,但我希望 GeometryReader 增长到与其内容一样大。我怎样才能做到这一点?

谢谢

0 投票
1 回答
325 浏览

xcode - SwiftUI ScrollView 内容高度

我在尝试确定 ScrollView 内视图的高度时遇到问题

geometry.size.height 始终为 10.000。

我该如何纠正这个意外的结果?

非常感谢!

0 投票
1 回答
372 浏览

swift - SwiftUI:为什么proxy.safeAreaInsets.bottom的高度等于keyboardHeight?

所以 iPhone 11 Pro Max 上的 safeAreaInset.bottom 是 34.0,但是当键盘打开时,它会将 safeAreaInset.bottom 更改为键盘的高度(346.0 点)。当键盘打开时,有什么方法可以访问 safeAreaInset.bottom 值(34.0)?

作为参考,我的内容视图中有一个几何阅读器:

我还需要它适用于所有设备,似乎为不同设备制作一堆 if 语句是一个非常糟糕的解决方案。有人有建议吗?

0 投票
0 回答
178 浏览

ios - 让子视图在 SwiftUI 中垂直布局的最佳方法?

我很难让子视图正确布局,尤其是高度。我讨厌硬编码子视图的高度,但这是我唯一可以开始工作的事情。如果我frame(heights)从子视图中删除这些,子视图会在父视图中重叠。对于没有硬编码高度的更好方法来构建它有什么建议吗?

我希望这个视图看起来如何但没有硬编码的高度

0 投票
2 回答
352 浏览

swiftui - GeometryReader 计算视图的总高度

我有一个固定宽度和高度的主视图,因为这个视图将被转换为 PDF。接下来,我有一组子视图,它们将垂直堆叠在主视图中。可用的子视图可能比主视图中的要多,所以我需要一种方法来确保我不超过主视图的总高度。例如,如果我的数组中有八个子视图,但只有三个适合主视图,那么我需要在三个之后停止添加子视图。剩余的子视图将在新的主视图上重新开始该过程。

我的问题是,如果我使用 GeometryReader 来获取视图的高度,首先我必须添加它。但是一旦添加了视图,再发现它是否超过了可用的总高度就为时已晚。

下面显示了我如何在添加每个视图时获取它的高度。我知道,这没什么好说的,但我很困惑。

更新:我目前的策略是创建一个临时视图,我可以在其中添加子视图并返回一个仅包含适合的数组。

在此处输入图像描述