问题标签 [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.
swiftui - GeometryReader 和 ZStack 到产品截图
我的目标:使用几何阅读器和屏幕截图功能(已经编写)来抓取位于关闭按钮后面的图像的一小部分。
设置:我有一个 ZStack,上面有Image
一个较小的按钮(它是本示例的系统映像)。目前,我将关闭按钮与背景图像的顶部对齐,乍一看一切都很好。
但是,当点击关闭按钮时,我需要抓取关闭按钮本身的屏幕截图(匹配框架和大小)。
当我对齐时一切正常,但现在我已经设置ZStack
,我的屏幕截图仍然出现在图像的中心。.center
alignment: .top
当点击它时,如何移动GeometryReader
包含关闭按钮的屏幕截图以允许屏幕截图成为关闭按钮(以及它背后的一些额外背景)?
我的代码:
截图:
期望的结果(但在顶部ZStack
):
当前结果(在以 为中心的背景图像中间截取屏幕截图ZStack
):
swiftui - ScrollView 与 Geometry Reader 结合使用时无法正确滚动(反弹)
我已经在这里查看了答案(ScrollView Don't Scroll with Geometry Reader as Child),我猜这很相似,但我无法弄清楚。
我的目标是显示相同大小(二次)的图像。
这是我的观点:
不幸的是,它没有正确滚动(反弹)并且总是回到顶部。你有什么想法吗?
谢谢!
ios - 使用 SwiftUI 开发 iOS 13 和 14
我有一个可以在 iOS 13 上正确运行的应用程序版本,但由于 iOS 14 Apple 似乎改变了 GeometryReader 的工作方式(请参阅:iOS 14 has Changed (or broken?) SwiftUI GeometryReader)。
问题是现在有两套关于 GeometryReader 的不同设置应该适用于 iOS 13 和从 iOS 14 开始的任何新版本。
A. 由于这是一个应用程序范围的问题,是否可以上传仅支持 iOS 14 和更新版本的版本,同时保留 iOS 13 的旧版本?我可以单独更新旧版本吗?
B.如果不是,处理需要对几何阅读器设置进行不同调整的两个类的适当方法是什么?, 例如:
swift - 如何在 SwiftUI 中相对于不同坐标系中的其他视图定位视图
我正在尝试使用 SwiftUI 在我的应用程序中实现拖放功能。
我创建了两个圆圈,它们位于两个不同的HStacks
. 它们不共享相同的坐标空间。
带有笔划的圆圈是目标,绿色实心圆圈是要拖动的对象。
我能够使用一个GeometryReader
inside来获得他们的绝对位置.overlay
。我用它来检测当对象圆被拖动到目标圆上时它们是否重叠。这行得通。
当它们不重叠时,对象圆将移回其原始位置。当它们确实重叠时,对象圆应该在目标圆的位置卡入到位。这是我似乎有问题的地方。
我正在尝试通过以下方式设置对象圆的新 X 和 Y 位置:对象圆局部位置 - 对象圆全局位置 + 目标圆全局位置。
我假设这会将我带到目标圆的坐标空间。但不知何故,它不起作用。
到目前为止,我一直无法找到一种可靠且简单的方法来在 SwiftUI 中转换坐标空间。使用覆盖内部的解决方法GeometryReader
至少可以为我提供正确的全局位置。但是我还没有找到一种方法来使用这些位置将视图也放置在.global
坐标空间中。
如果有人知道为什么我对坐标空间的计算是错误的,或者甚至知道一种更容易地相互转换和定位视图的方法,我将不胜感激。
这是我的 SwiftUI 单视图 iOS 应用程序代码:
swiftui - 如何使用 GeometryReader 在 LazyVGrid 中拖动视图?
我想拖动网格中的矩形并更改它们的颜色。这段代码几乎可以工作,但这并不总是正确的响应矩形:它的行为相当随机。有什么提示吗?
swift - GeometryReader 似乎改变了使用其大小数据的视图布局。我怎样才能避免这种情况?
我希望我的图标图像是总屏幕可用性宽度的 1/3。我的代码如下:
当我这样做时,图标会出现在屏幕的左上角,它不会像我想象的那样留在中心。例如,这可以正常工作,但不是基于屏幕大小的动态
ios - SwiftUI - GeometryReader 覆盖自定义转换
我想在 a 包围的一组视图上应用自定义转换GeometryReader
,如下所示:
(✔) 自定义过渡作品:
(✗) 自定义转换被忽略,默认为.opacity
:
在上面的第一个代码块中的工作上的自定义转换RoundedRectangles
可以在其中声明GeometryReader
,但我不能像这样构造它,因为我需要RoundedRectangles
' 当前定位数据 - 我必须从geometry
var 中获取 - 以作为自定义转换的输入。(为简洁起见,上述代码中省略了这部分,将其视为类似)所以我需要在第二个示例中.myCustomTransition(param: aRequiredValueFromTheGeometryProxy)
的上述类似内容中声明转换。GeometryReader
我想不出为什么第二个示例中的转换不能按预期工作的任何原因。我绝不是 SwiftUI 方面的专家,所以我很确定我在这里弄错了。
任何关于为什么会发生这种情况以及任何可能的解决方法的想法将不胜感激!
PS 不出所料,.transition(.identity)
在附件上添加一个GeometryReader
不起作用。
PPS 我没有包括我的自定义转换实现,因为它似乎对问题无关紧要。(即当我用 替换转换值时.slide
,这也不起作用)