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

swiftui - GeometryReader 在提取视图时表现异常

在此示例中,“hello”文本按预期放置在屏幕中间。

但是当我移动Text到提取的视图时,“你好”文本移动到屏幕的左上角。

这是一个错误,还是我不理解的预期行为?

0 投票
1 回答
1682 浏览

scroll - 如何正确地将“单元格项目”从 SwiftUI LazyVGrid 传递给 .sheet?

这是我的示例,我无法判断这是否是错误。我的所有单元格都正确加载,但是当我尝试将其DetailView()作为工作表显示时,输入的项目始终是网格中首先显示的项目(在我的情况下位于左上角),而不是之前的“单元格”轻拍。那么,为什么 ForEach 循环中的项目正确填充了单元格,但没有通过按钮传递给 .sheet 呢?

我错过了什么?另外,在我的 iPad pro 11 上滚动有点跳动,有没有人看到同样的行为?

0 投票
2 回答
977 浏览

swiftui - 观察 SwiftUI 中的帧变化

我有可以拖放到其他视图之上的视图(比如说类别)。为了检测我在哪个类别视图之上,我将它们的帧存储在一个帧数组中,这发生在它们的不可见叠加层的 onAppear 中。(这基于教程中的 Paul Hudsons 实现)。

这一切都很好,除了当这些视图的位置发生变化时,例如在设备方向或 iPad 上调整窗口大小时。这当然不会触发 onAppear,因此帧不再匹配。

因此,欢迎任何想法如何更新这些实例中的帧或如何以不同的方式观察它们。

0 投票
2 回答
579 浏览

swiftui - SwiftUI - GeometryReader 崩溃 SIGABRT

我正在尝试根据设备宽度实现两种不同的视图。所以这个视图的 iPad 版本应该和 iPhone 版本不同。为此,我使用 GeometryReader 检查宽度。但是,该应用程序总是因“线程 1:信号 SIGABRT”而崩溃。每个人对自己工作的看法都完美无缺。

如果我在宽度小于 592 的 iPad 分屏中启动它,它可以正常工作。之后能不崩溃而改变成大的尺寸。如果以大于 592 的宽度开始,它会崩溃。

此外,如果我只使用 if 语句而不使用 else,它也可以工作。

即使是顶部的测试也会崩溃。

这是我的代码:

这是一些可重现的代码:

和 Json 文件:

有任何想法吗?

0 投票
0 回答
115 浏览

swiftui - 在 SwiftUI 中使用几何阅读器单击卡片时隐藏标签栏

我正在使用自定义 Tabbar 并实现了您可以在 iOS 的 App Store 上找到的相同动画,当您单击“今日视图”中的卡片时。

一旦卡片展开,我想隐藏标签栏。目前我用布尔变量隐藏它。但是当我点击其中一张卡片时,整个几何阅读器都会消失。

这是包含 Tabbar 和 HomeView 的类,其中实现了带有卡片的列表

这是几何阅读器所在的 HomeView

显示问题的视频

0 投票
1 回答
2497 浏览

swift - SwiftUI 自动调整底页大小

SwiftUI 有很多底部表格的示例,但是它们都指定了表格可以使用 GeometryReader 增长到的某种最大高度。我想要的是创建一个底部表,它的高度仅与其中的内容一样高。我使用首选项键提出了以下解决方案,但必须有更好的解决方案。也许使用某种类型的动态滚动视图是解决方案?

0 投票
1 回答
279 浏览

swift - 在 SwiftUI 中的 makeUIView 中设置的值中访问 GeometryReader

所以我使用 UIViewRepresentable 协议和以下函数渲染了一个 Mapbox 地图:

唯一的问题是,因为我对 y 边距的值进行了硬编码,所以跨多个设备的定位并不理想。我想使用 GeometryReader 来访问 safeAreaInsets,然后使 y 填充成为它的功能。有谁知道如何做到这一点?

0 投票
0 回答
95 浏览

swift - 在 SwiftUI 中基于容器代理设置文本字段的宽度

所以我有一个几何代理,它包装了我制作的自定义 UITextField。文本字段的唯一问题是,如果我输入一个长字符串,文本字段的宽度会变大以适应内容大小。我认为最好的方法(我可能是错的)处理这个问题是将它包装在几何阅读器中,然后将文本字段的最大宽度设置为代理的宽度:唯一的问题是我不知道如何访问代理的宽度:

理想情况下,这与“TextFieldAlternate”只是一个普通的 TextField 时完全一样。我是否以正确的方式思考这个问题?因为我的逻辑是 GeometryReader 将具有与 HStack 相同的尺寸,所以如果我将文本字段的 maxWidth 设置为与 HStack 相同,它就不会变得更大,对吧?

0 投票
0 回答
157 浏览

pagination - SwiftUI - ScrollView 和 GeometryReader 分页错误 - @State 变量不改变值

所以我在某种程度上实现了分页,但是,有一个错误。我似乎只能执行 self.searchViewModel.loadMoreData()一次,而且只有在视图出现时。

这是我的完整代码:

我真的相信这是因为time没有改变它的状态。由于控制台只打印一次“获取数据”。一旦滚动到视图的末尾,在收集并呈现下一组数据之后,什么也没有发生。几个小时以来,我一直在尝试对此进行排序。我已经阅读了如何@Binding更好地使用,但是每当我尝试实现它时,我都会遇到不断的错误。

本质上,我只是想检测用户何时一直滚动到我的底部,ScrollView以便我可以调用该函数来获取下一批信息。我已经尝试了几乎所有可能的解决方案,但没有运气。在我看来,我已经改变并改变了onAppear&方法。onReceived

任何帮助将非常感激。

0 投票
1 回答
348 浏览

swift - SwiftUI: compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions

So I have a GeometryReader encapsulating most of my contentView,

but I'm running into an issue with it. I pass it into various views in my ContentView with no issues. For some reason though, if I try to pass it into a specific set of views defined in if statements in my app, I get the error "The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions". The problem seems to stem from adding more variables (proxy, proxyOffsetTop, or proxyOffsetBottom) to this view (no idea why):

As soon as I remove the proxy from the view I am passing it into, the app runs fine. I tried wrapping different views in groups because I figured maybe I hit that 10-view cap but I'm pretty sure that's not the error anymore...I have no idea what could be causing this, any suggestions?