问题标签 [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 导致其他 GeometryReader SwiftUI 出现问题
我正在使用两个 Stack 并且我有一个 UIViewRepresentable ,我想将它放在第一个堆栈中,但是对于宽度和高度,我使用 GeometryReader 来获取宽度和高度,以便 UIViewRepresentable 将在第一个堆栈中。同样在第二个堆栈中,我有一个 Rectangle,我还想将 Rectangle 的宽度大小设置为与第二个堆栈相同,因此我再次使用了 GeometryReader,现在这个影响了第一个堆栈中 UIViewRepresentable 的帧大小。
我正在使用iOS 13.4和Xcode 11.4
第一个视图和第一个堆栈:
第二视图和第二堆栈:
然后我在另一个视图中使用这两个视图:
ios - SwiftUI GeometryReader 使其内容加载两次
你好吗?
请考虑以下代码:
我的问题很简单:为什么 ViewOne 在 GeometryReader 内构建了两次,而在 GeometryReader 之外只构建了一次?
首先,我认为需要创建一次视图,然后再考虑 GeometryReader 的大小,但是,如果您在 ViewOne 中有更复杂的内容,事情就会变得一团糟。
有任何想法吗??
感谢您花时间和帮助这个 SwiftUI 朋友!
image - 如何在 SwiftUI 中动态偏移裁剪的图像?
我喜欢用 SwiftUI 实现的是图像中的某个部分(内容管理系统提供的 ax,y 点)始终可见,即使在需要调整图像大小和裁剪以适应布局的情况下也是如此。
以下示例代码生成的输出可以在示例的第一个屏幕截图中看到:
如果图像的框架是恒定的,我可以通过添加offset(x:,y:)
修饰符来解决这个问题。但是,帧的大小不同(例如,在我的示例中,宽度取决于设备),因此需要动态计算偏移量。为此,我需要知道图像框架的大小和UIImage
.
我尝试了成功,GeometryReader
也ÀnchorPreferences
没有成功。知道如何在 SwiftUI 中解决这个问题吗?
swiftui - 在 geometryReader 中设置 @State var
如何在geometryReader 中设置@State var
这是我的代码
我尝试使用一个功能但不起作用
任何想法?谢谢!
swiftui - 如何让我的 UIView 在 SwiftUI 中正确调整其内容的大小?
我想使用Yonat Sharon
在我的 SwiftUI 视图中编写的很棒的 MultiSegmentPicker。
https://github.com/yonat/MultiSelectSegmentedControl
但是,我并不完全理解 UIViewRepresentable 视图和我的 SwiftUI 视图之间的交互。如何让主机视图控制器将其高度缩小到分段控件的大小?
演示代码并没有深入了解这个问题,它只是对 UIViewRepresentable 视图的调用。我在这里将其简化为一个示例:
请注意,我在控件之前有一个带 Spacer() 的 VStack。
此示例所需的行为是带有“First”、“Second”等的条紧贴屏幕底部。相反,主机控制器保留了所有空间......
我是否需要使用几何阅读器来解决这个问题并缩小高度。还是我必须在 UIViewRepresentable 视图中调整一些东西?
任何关于桥接 UIKit 和 SwiftUI 的见解都会受到赞赏......这是一个简单的解决方案吗?
这些并没有解决我的问题: UIViewRepresentable content not updates
swiftui - SwiftUI GeometryReader 体积小巧
我希望我LoadingTitle
的屏幕宽度为 70%,所以我使用它,GeometryReader
但它会使垂直尺寸扩大,并且我LoadingTitle
需要更多的垂直空间。我希望它尽可能保持紧凑。
使用硬编码时,width: 300
我得到了正确的布局(相对宽度除外):
body
现在,如果我将my包裹在LoadingTitle
其中,GeometryReader
我可以获得正确的相对大小,但随后GeometryReader
会垂直扩展我的视图:
我尝试按照其他建议.fixedSize(horizontal: false, vertical: true)
使用,但结果视图过于紧凑,并且其所有填充都被忽略:GeometryReader
如何以相对宽度实现第一个屏幕截图的布局?
swift - 当从 GeometryReader 中进行更改时,SwiftUI 不会反映对 @Binding @State 变量的更改
我有一个带有 HStack 视图的 ScrollView,这些视图会根据它们自己的位置进行动画处理。为此,我使用了一个 GeometryReader,它将读取每个视图的当前全局位置,当到达某个位置时,视图将从失焦状态切换到聚焦状态,并进行一些转换并将 @State 变量更改为指示视图处于焦点位置,以便视图的其他部分可以对其进行操作。
相当简单,对吧?不幸的是,当我从 GeometryReader 中更改 @State 时,状态更改不会发生。因此,我构建了一个简化版本来演示该问题。
这是代码:
当您点击同样在 GeometryReader 中运行的“切换”按钮时,@State 变量将成功更改并反映更改。
当您实际滚动 ScrollView 并让它自然滚动时,什么都不会发生。即使停止后也不会更新。
见这里:https ://streamable.com/d3op74
当您在 ScrollView 中缓慢滚动而不抬起手指时,@State 变量会发生变化。
在这里:https ://streamable.com/7m15t9
如果您像这样使用 DispatchQueue.main.asyncAfter() 引入延迟:
即使延迟为 0,@State 更改也会在您滚动时起作用,无论多快,但是这次切换按钮不起作用(这是有道理的,因为 GeometryReader 会重新计算并推翻由按钮)。
在这里:https ://streamable.com/q3ylu1
有人可以解释一下这里发生了什么吗?这是预期的行为还是错误?
ios - SwiftUI 使用 GeometryReader 时覆盖层的错误垂直对齐
我有一个覆盖视图,我希望它出现在其父视图的顶部边缘(垂直对齐到顶部而不是中心,请参见快照 B),并且能够在点击时半隐藏它(将其向上移动以使其不t 遮蔽其父视图,但仍有一部分可见,例如 64 像素,以便仍可以将其轻敲回原始位置,请参见快照 C)。问题是当我使用GeometryReader
来获取我试图移动的覆盖视图的高度时,覆盖最初出现在视图的中心(参见快照 A)。如果我不使用几何阅读器,我不知道要偏移多少覆盖视图:
不知道为什么几何阅读器会对布局产生这种影响。
(A) 这是几何阅读器代码的显示方式:
(B)如果我删除几何阅读器代码,我会得到想要的效果:
(C) 这就是我想要将叠加层移到顶部的方式:
编辑:上面显示的代码生成布局 (A)。如果我省略几何阅读器代码,我想要布局(B)。