问题标签 [lazyvgrid]
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 - 将单元格动态添加到 SwiftUI LazyGrid
如何在 SwiftUI 中向某些 LazyVGrid 动态添加单元格(不是列)?以下代码应通过单击按钮添加 1 个单元格。它编译但不起作用。我错过了什么?
swift - 如何允许 ForEach 布局项在 SwiftUI 中显示数组中的重复项?
我正在使用多项选择答案测验应用程序。
更新 这里是我的测验应用程序的示例。
这是错误:
线程1:致命错误:每个布局项只能出现一次
波纹管代码崩溃
这是一个测验应用程序,因此可以选择多个选项来选择正确答案。数组项将在每个循环中多次出现。
所以需要每个布局项多次出现。
macos - 将多个 LazyVGrid 添加到 ScrollView
我有一个应用程序,它按天显示缩略图集合,每一天都是它自己的LazyVGrid
,所有的日子都聚集在一个VStack
.
最重要的是,看起来LazyVGrid
在单个中添加多个ScrollView
几乎可以工作......但没有。
它在滚动时会导致不稳定的行为,这是一个示例:
编辑4:我认为我正在取得进展。这似乎发生在网格的最后一行有空间时,如果所有行都满了,它似乎按预期工作。
编辑 1:在此处更改代码以使用 Identifiable(感谢 Simone),但问题仍然存在
如果您运行此代码并滚动视图,您可能会在某个时候看到ScrollView
跳跃。
在使列表更长的较窄窗口中尤其明显
当然,使用单个LazyVGrid
inside ofScrollView
不会出现问题
我尝试过查看视图的数量,结果似乎是随机的,有时它会工作一段时间,有时它会立即重现,但更窄的窗口最终总是会显示问题。
我也尝试删除VStack
.
编辑2:这是正在发生的事情的视觉效果:
编辑 3:我也可以在 iOS 上重现该问题。
编辑 5 :非常丑陋的黑客尝试修复它。
编辑 6:完全工作的代码示例
这个想法是用虚拟的填充剩余的瓷砖,一开始似乎很容易,但有一个问题LazyVGrid
完全打破了GeometryReader
。
我发现了这个 hack 并用它来确定需要多少额外的图块https://fivestars.blog/swiftui/flexible-swiftui.html
这可能是我曾经做过的最丑陋的黑客攻击之一,我只是在这里发布它,以供那些在这个页面上绊倒的人比我更聪明地实现更好的东西。
swift - 重新渲染父级时在 SwiftUI 中关闭视图
使用iOS14.4、Swift5.3.2、XCode12.2、
我尝试关闭 SwiftUI 的 GridView(参见下面的代码)。
解除功能是由 的\.presentationMode
属性完成的,@Environment
如here所述。
一切正常,直到我引入一个@Binding
在解雇的那一刻改变父视图的属性。(见dataStr = titles[idx]
下面的代码摘录)。
我读到,\.presentationMode
只有在显示子视图期间父视图未更新时,解雇 by 才有效。
但是当用户在这里点击 GridView 的一个元素时,我绝对需要在父视图上引起突变。
如何重写以便更新父视图并且解除子视图仍然有效?
正如@jnpdx 所问,在这里您可以看到父视图。请找到GridView(dataStr: self.$dataStr)
里面.sheet()
的ToolBarItem()
......
memory - matchGeometryEffect 对 ScrollView 内存泄漏的影响
我使用 LazyVGrid 来显示文章库。一切正常,我没有内存警告,因为每次视图离开屏幕时,内存使用量都会减少。
我的问题是当我对图像使用matchedGeometryEffect时,以便将动画与新视图同步。
动画效果很好,但是在滚动视图滚动时内存正在增加。就像matchedGeometryEffect正在维护对对象的内存引用,并且不允许释放。
容器
卡片视图
...
新观点
...
一切都很完美,但是如果我取消注释注释行,滚动时内存使用量会增加。
任何想法?比你
image - SwiftUI LazyVGrid 滞后于图像
当我滚动我的 LazyVGrid 时,应用程序滞后很多。
文章卡查看
我使这个视图 Equtable,但仍然滞后。滚动不是流体。
任何优化滚动的想法。
swiftui - ScrollView / LazyVGrid 中的 SwiftUI 中的 EditButton()
SwiftUI(Xcode 12.5 beta 3)中的 EditButton() 似乎有各种问题。
在我的代码中,一切正常,直到我用 ScrollView 替换 List 并添加了 LazyVGrid。现在,当用户点击 EditButton 时,不会激活 EditMode。
任何解决方法的想法?拥有 2 列是 UI 的要求,虽然我可以使用列表,但我更喜欢 ScrollView 的外观。我已经尝试了很多东西......将 ForEach 放在一个部分并将 EditButton 放在标题中,用手动按钮替换它......不幸的是它们似乎都不起作用:-(
非常感谢任何想法或任何其他人为解决这个问题所做的任何事情。
尝试 1
在阅读了下面 Asperi 的评论后,我在 ScrollView 中添加了以下(下)以手动创建按钮、触发 EditMode 和删除项目。现在我在行上遇到一个新错误deleteCars
:“初始化程序'init(_:)'要求'FetchedResults.Element'(又名'Cars')符合'Sequence'”。
看起来我真的很接近,但仍在挣扎 - 任何人都可以帮助我完成最后的工作吗?非常感谢!