问题标签 [lazyvstack]
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.
ios - 使用两个轴时如何将 ScrollView 内容对齐到顶部?
这是一个简单的例子:
问题是,当使用两个轴 ( [.horizontal, .vertical]
) 时,会ScrollView
自动将任何内容垂直和水平居中。我在 中有一个大数据表ScrollView
,我需要将它与顶部对齐,但我不知道该怎么做。通常带有Vstack
s 和Spacer
s 的东西在这里根本不起作用。
swiftui - 使用实时数据滚动时,SwiftUI 列表非常慢
我有一个列表和一个数组中的大约 1000 个项目,并且我的项目实时更新(100 次更新/秒)。我的清单表现不佳。
这是我的测试代码(我尝试使用 List 和 LazyVStack):
arrays - SwiftUI:删除最后一个元素时索引超出范围
我有一个用 LazyVStack 制作的清单,我为清单项目实现了删除功能,但由于某种原因,只有当我尝试删除最后一个元素时,应用程序才会因“索引超出范围”而崩溃
这是我的代码:
swiftui - SwiftUI 也会导致死循环,为什么呢?
这是我的初始代码
为什么使用 LazyVstack 集合框架会导致死循环?我仍然无法理解这样的问题。如果直接使用Vstack,不会出现死循环。为什么,或者如果你不设置框架,它不会导致无限循环。虽然不设置框架不会对程序产生任何影响,但为什么会这样呢?
swift - LazyVStack - 行 onAppear 被提前调用
我有一个LazyVStack
,有很多行。代码:
最初在屏幕上只能看到大约 40 行,但onAppear
触发了 77 行。这是为什么,为什么在屏幕上真正可见之前调用它?我不明白为什么 SwiftUI 必须“预加载”它们。
有没有办法解决这个问题,或者如果这是有意的,我怎样才能准确地知道最后一个可见项目(接受不同的行高)?
编辑
状态的文档LazyVStack
:
堆栈是“惰性的”,因为堆栈视图在需要将它们呈现在屏幕上之前不会创建项目。
所以这一定是一个错误,我想?
ios - SwiftUI 究竟在哪里使用 Lazy Stacks 进行性能优化?
许多在线网站演示使用惰性堆栈加载大量视图,例如ForEach(1...100, id: \.self) { value in
用于演示用法。但是在具有复杂视图的生产应用程序中,我真的找不到任何资源来了解在何处以及如何准确地使用 Lazy Stacks。例如,我有一个MasterView
包含许多复杂视图的子视图(每个视图包含多个绘制成本高的图表)。我应该像下面那样在顶层使用惰性堆栈,还是子视图(ComplexView
s)也应该在它们中使用惰性堆栈?或者子视图应该使用 LazyStacks 并MasterView
使用常规的 VStack?从性能(滚动的角度)来看,什么是最优化的。
ios - LazyVStack 在 SwiftUI 更改时初始化所有视图
我有一个LazyVStack
我只想更新一个视图而不是在屏幕上重新加载所有其他视图。对于更复杂的单元,这会对性能造成很大影响。我已经包含了示例代码
正如您所看到的,即使仅更改 1 个单元格,也会为每个单元格调用 init。有没有办法避免这种情况?
swiftui - 如何检测 LazyVGrid 的项目是否被重新构建?
在我的应用程序中,LazyVGrid
多次重新构建其内容。网格中的项目数可能不同或保持不变。每次必须以编程方式将特定项目滚动到视图中。
当第LazyVGrid
一个出现时,可以使用onAppear()
修饰符将项目滚动到视图中。
有什么方法可以检测LazyVGrid
下一次完成重新构建其项目的时刻,以便可以安全地滚动网格?
这是我的代码:
网格
帮助枚举确定要在网格中显示的列数
简化的视图模型
ios - SwiftUI:向 LazyVStack 添加可刷新?
当我使用列表视图时,我可以轻松添加refreshable
修饰符来触发刷新逻辑。我的问题是如何在使用 LazyVStack 时达到同样的效果。
我有以下代码:
在这种情况下,如何获得刷新行为LazyVStack
?