问题标签 [viewbuilder]
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 中遍历视图构建器内容子视图
所以我正在尝试创建一个视图,该视图采用 viewBuilder 内容,循环内容的视图并在每个视图和另一个视图之间添加分隔线
所以在我写“这里”的地方,如果有意义的话,我想循环查看内容的视图。我将编写一个不起作用的代码,但这解释了我想要实现的目标:
怎么做?
ios - SwiftUI,在@Viewbuilder 中将视图作为参数传递
我的好奇心使我将View
类型作为参数传递给@ViewBuilder
. 将模型/原始类型作为参数传递@ViewBuilder
是完全有效的。
如下代码所示。
代替String
在
如果我尝试传递 SwiftUIView
类型,那么 Compiler 会对此不满意。
即使 params for@ViewBuilder
接受自定义协议类型,例如Searchable
但不接受View
协议。
编译器告诉我这个Protocol 'View' can only be used as a generic constraint because it has Self or associated type requirements
我的整个想法是content
可以允许保留Section/List/Text
它。
编辑:我希望代码如下。
我有什么办法可以做到这一点?
swift - SwiftUI 中的 ContentView 文件对于编译器来说太复杂了?
自从 SwiftUI 2 发布以来,编译器和调试器就变得很糟糕。每当我在“viewThatCanContainOtherViews()”中向 ZStack 添加另一个视图(即自定义结构,甚至只是包含 Text() 元素的 VStack)时,代码都会拒绝编译。每个通常还包含一些堆栈或按钮或其他任何东西。我觉得 ViewBuilder 太复杂了,但我不明白如果这不是你的做法,其他应用程序是如何做到的?代码只是无法编译,我确信它不是某个地方的语法错误,因为它编译(尽管非常慢),除非我添加另一个视图,在这种情况下我会收到错误。
通用代码格式如下所示:
swiftui - Swiftui如何将带有参数的视图传递给另一个视图,该视图将在调用视图时设置参数
这是一个简单的示例,但我无法弄清楚如何将 test 的值传递到传入的目标视图中。网络上的所有示例在传入时都会形成“完全”视图。
(我正在考虑使用一个函数,我将值传递回父级并让它返回形成的视图,但那是向后的。)
这是为了支持一个 swift 包,其中一个视图由使用该包的应用程序提供。(然后,我提出的解决方案将让应用程序支持 GetView 函数。我希望应用程序只传递一个采用已定义参数的视图。
swiftui - 如何对@ViewBuilder 函数进行单元测试?
一个示例函数:
我试过这样的测试:
当只有一种可能的视图类型时它会通过,但一旦有选择就会失败。
关于如何对这个函数的输出进行单元测试有什么建议吗?
flutter - Flutter 中的 PageView.Builder 在 null 上调用了 getter 'length'。接收方:null 尝试调用:长度
当使用来自 API 的响应时显示错误 在 null 上调用了 getter 'length'。接收方:null 尝试调用: 这里的长度是我的 API 代码
同时使用 List 然后代码正常工作
swift - 在 Swift 的 If 语句中设置 @State var
我正在尝试在类型为 :View 的结构内的 If 语句中设置 @State var 的值,如下所示:
但是当我这样做时,我得到了错误:“类型'()'不能符合'视图';只有结构/枚举/类类型可以符合协议”。如果我使用一个可以满足我需要的类方法,如下所示:
我犯了同样的错误。
这样做的正确方法是什么?
ios - 在 SwiftUI 中使用 @ViewBuilder 单独修改传递给容器的子视图
在 SwiftUI 中,您可以将多个视图作为一个参数传递给另一个视图,这要归功于@ViewBuilder
. 每个子视图都被单独处理,因此在被传递后,可以包含在 aVStack
等中HStack
。
我的问题是:这个容器视图是否可以单独修改传递给它的每个子视图?例如,通过Spacer
在每个子视图之间添加一个。
这是我正在寻找的等效功能:
我相信这是可能的,因为标准 SwiftUI 容器视图会影响传递给它们的子视图的外观和布局。除非这是通过 SwiftUI 的内部功能实现的?
解决此问题的一种方法可能是传递多个视图参数而不是一个,但如果需要传递许多视图,这是不灵活且混乱的。视图数组似乎也没有意义,因为我在 SwiftUI 的任何地方都没有注意到这种模式。
binding - 如何根据可选的 Binding 在此 SwiftUI @ViewBuilder 中初始化 Bool ?
我的目标是使用三元运算符为我的图像添加阴影,但如果视图使用默认图像,则不添加阴影。
这是我的代码:
我也有这个扩展Image
:
我正在尝试使看起来像这样的代码可以很好地工作并且很棒,除了影子布尔: