问题标签 [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 回答
540 浏览

animation - 动画不适用于 GeometryReader 和 NavigationView 的组合

我有一个使用偏移量和计时器上下滑动的动画图像。在您结合 GeometryReader 和 NavigationView 之前,这完全可以正常工作。对于 NavView 和 GeoReader 本身,动画也可以正常工作。有什么解决办法吗?(我知道,在这个例子中 GeometryReader 是不需要的)

0 投票
1 回答
429 浏览

ios - SwiftUI ScrollView、GeometryReader 和 Button = 奇怪的行为

在过去的 2 个小时里,我一直在尝试让按钮的 ScrollView 工作,更具体地说,使用 GeometryReader 来确定其大小的按钮的 ScrollView。此外,所有这些都放置在 NavigationView 中。

有奇怪的行为,比如按钮没有执行它的动作,没有注册点击,当放置在一个 VStack 中的 HStack 中以获得类似网格的结构时,我只能点击具有预期效果的第一行按钮,其他按钮都是反应迟钝。如何正确构建所有这些视图?

0 投票
0 回答
58 浏览

swiftui - 为什么 HStack 会使布局渲染错误?

我正在尝试使用嵌套 HStack 和网格(https://github.com/spacenation/swiftui-grid)的 VStack 来组成视图。预期的结果是 HStack 和所有网格项都应该呈现。实际结果是只有一项网格呈现。但是当我将 HStack 更改为 VStack 时,视图按预期呈现。请注意,网格呈现了一个几何阅读器,它嵌套了一个 ZStack 这是我的代码和图像。图像中的蓝框是网格。它的高度缩小了。

蓝框表示网格。它的高度缩小了

0 投票
1 回答
1628 浏览

ios - ScrollView 无法与 GeometryReader 一起正常工作

我对滚动视图和 GeometryReader 有一些问题。我想在图像下有一个项目列表。每个项目应具有以下宽度和高度:
((width of the entire screen - leading padding - trailing padding) / 2).

我为我的用例尝试了两种方法。这是我第一个的代码结构:

方法#1

我正在使用几何阅读器来获取 VStack 的宽度,因为它有一个填充,我不想拥有滚动视图的整个宽度。

但是使用 GeometryReader,只有 ForEach 循环中的最后一项显示在 UI 上。GeometryReader 只有很小的高度。见截图。

代码:

红色是 ForEach 循环中的项目。蓝色 GeometryReader 和绿色只是图像。

截屏



方法#2

然后我的 ForEach 循环中的项目被正确呈现,但不能再滚动了。

代码

截图No2

如何归档以正确显示 UI。我在这里遗漏了什么吗?

我真的很感激一些帮助。
谢谢你。



编辑

我找到了一种解决方法,可以让 UI 使用正常工作的 scrollView 正确呈现,但这对我来说看起来很 hacky。
我正在为此解决方法使用 PreferenceKey。

我在滚动视图中使用几何读取器,高度为 0。只是为了获得我的 VStack 的宽度。在 preferenceKeyChange 上,我正在更新一个状态变量,并将它用于我的项目来设置它的宽度和高度。


这是这样做的唯一方法,还是有更优雅和更简单的方法来做到这一点?

0 投票
1 回答
956 浏览

swiftui - 如何限制 VStack 中 GeometryReader 的大小

我想停止GeometryReader干扰我的布局,VStack但我不确定正确的方法是什么。

给定一个带有标题和标题的简单图形示例:

产生这个预期的结果:

在此处输入图像描述

但是,如果我们更新Graph视图以使用 aGeometryReader在屏幕宽度上均匀分割图形,则布局会发生变化。

这使得Graph视图填充了所有可用空间VStack

在此处输入图像描述

有没有办法让Graph视图只填充其自然高度,并且在仍然使用GeometryReader.

请记住,Graph此处可能是任何不知道确切大小的视图,因此无法设置静态大小。即没有GeometryReader, Graphcan 只占用 VStack 中所需的垂直空间量。

0 投票
1 回答
63 浏览

swift - 如何在 GeometryReader 中分解多个 ForEach 语句并避免“编译器无法在合理的时间内进行类型检查..”

我一直在尝试针对我自己的问题模拟 Ray Wenderlich Swift UI 图形教程,并且效果很好,但是由于视图的复杂性。

我还尝试将各个部分分解为它们自己的视图,但是我无法引用我的坐标转换辅助方法,这些方法将工程单位转换为子视图中驻留在父视图中的窗口单位。这是我从教程中改编的代码:

当我尝试将每个 ForEach 部分移动到它们自己的视图时,我失去了对辅助方法的引用。是否有适当的模式将这些分开并仍然成功地引用辅助函数来完成坐标转换?我想我可能会达到每组 10 个视图的限制,但将视图重构为更小的组并没有帮助。一个例子将不胜感激。

0 投票
0 回答
240 浏览

ios - 需要从 Api Uikit 类到几何阅读器的等效值

错误消息在这里我是 swift 的新手。尝试调整 UIImage 高度和 UIImage 位置时在 .view 中出现错误。我只想从画布中获取绘图并对其进行自定义。

我想在这里调用 preprocessImage

0 投票
1 回答
1261 浏览

swift - SwiftUI 不同的子对齐方式和 GeometryReader

我想将一个 Web 应用程序转换为一个 iOS 应用程序,但我正在努力解决对齐和 GeometryReader() 问题。

这是我原始 Web 应用程序模板的屏幕截图: 在此处输入图像描述

这是我在 SwiftUI 中的当前版本: 在此处输入图像描述 使用相关代码:

我想:

  • 在父 VStack 中居中的点图像(如 margin: 0 auto; 在 CSS 中)
  • 外部 HStack 为 100% 宽度,左右边距为 10px (如宽度:100%;边距:自动 10px;在 CSS 中)

我想实现的特殊挑战是,给第二个 Bar() 视图一个百分比(或一些等价物),使其具有 1.00/35.69*100% 的百分比。

在 Swift UI 的苹果文档中,我发现:

GeometryReader 一个容器视图,将其内容定义为其自身大小和坐标空间的函数。 3

从以下变化:

它接近我寻找的东西:

在此处输入图像描述

我不明白这里发生了什么。我的目的是为 Bar 视图提供与父级的大小关系。但是父级本身具有不同的宽度和高度,我需要使用高度为 3 的框架来修复它,并且父级 HStack 会填满整个屏幕。

当我尝试这个时:

我完全出局了,因为条形图以某种方式堆叠:

在此处输入图像描述

0 投票
1 回答
510 浏览

ios - GeometryReader 使文本高度错误

不是针对所有文本,而是针对特定长度的文本 GeometryReader 决定 Text 应该包含两行:

因此:

在此处输入图像描述

但应该是:

在此处输入图像描述

正如您在第一张图片中看到的第二行错误,但在第二张图片中 - 第三行错误(多行文本)

0 投票
0 回答
39 浏览

swift - 确定多行文本中每行的长度

我编写了一个解决方案,用某种占位符替换文本以更新数据。

例如从这样的:

在此处输入图像描述

我必须得到这样的:

在此处输入图像描述

但目前有解决方案:

我只能得到:

在此处输入图像描述

您可以看到,最后两个占位符的行具有最大行的长度,但它应该重复每行的长度。文本也可能超过 3 行。

我想我需要在多行文本中找到每行文本的长度。