VStack 有最大限制吗?

2023-12-13

我从一个干净的项目开始,在 VStack 中添加了 5 个按钮和 5 个垫片,一切都很好。当我在底部添加第 6 个间隔符时,代码突然无法编译,并出现错误:“对成员‘buildBlock()’的引用不明确”。

是什么导致了这个错误?这是与 SwiftUI 相关的错误吗?或者它是一个功能?这不是我第一次注意到 VStack 或 HStack 的条目数量受到限制,是否有一些相关文档?

不完全是鼓舞人心,我应该切换回 UIKit 吗?


SwiftUI 使用ViewBuilder构造构成许多 SwiftUI 视图的视图,例如VStack, HStack, List等等。如果你看一下视图生成器文档,你会看到buildBlock函数有许多副本,每个副本都有不同数量的视图作为参数。视图数量最多的函数仅接收 10 个视图,这就是您看到所观察到的限制的原因。解决这个问题的一种方法是使用Groups:

VStack {
    Group {
        Text("Placeholder 0")
        Text("Placeholder 1")
        Text("Placeholder 2")
        Text("Placeholder 3")
        Text("Placeholder 4")
        Text("Placeholder 5")
        Text("Placeholder 6")
        Text("Placeholder 7")
        Text("Placeholder 8")
        Text("Placeholder 9")
    }
    Group {
        Text("Other Placeholder 10")
        Text("Other Placeholder 11")
        Text("Other Placeholder 12")
        Text("Other Placeholder 13")
        Text("Other Placeholder 14")
        Text("Other Placeholder 15")
        Text("Other Placeholder 16")
        Text("Other Placeholder 17")
        Text("Other Placeholder 18")
        Text("Other Placeholder 19")
    }
}

尽管如果您想要 20 个彼此非常相似的视图,我们还是鼓励您使用类似ForEach以免让你的观点过于臃肿。仅当 >10 个视图确实唯一时才应使用上述解决方法。即便如此,一种更 SwiftUI-y 的方法是将这些视图分割成更小的视图:

VStack {
    SingleDigitPlaceholders()
    TeensPlaceholders()
}

struct SingleDigitPlaceholders: View {
    var body: some View {
        ForEach(0..<10) { i in
            Text("Placeholder \(i)")
        }
    }
}
struct TeensPlaceholders: View {
    var body: some View {
        ForEach(10..<20) { i in
            Text("Other Placeholder \(i)")
        }
    }
}

当然,在这个具体的例子中,你可以只拥有两个ForEach最初的观点是这样的,但在更复杂的情况下,这一点仍然成立。例如,在包含许多元素的表单中(例如在工作申请表中:名字、姓氏、地址、电话号码文本字段、教育下拉菜单、日期字段等),您仍然可以将一个视图拆分为更小的组件(在工作申请示例中 - 个人信息视图、教育信息视图等)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VStack 有最大限制吗? 的相关文章

  • 在 SwiftUI 中使用分段式选取器在两个页面之间滑动

    我有一个Picker with pickerStyle SegmentedPickerStyle 使其成为分段控件 我想让页面在之间平滑滑动 而不是使用条件语句替换视图 这是我迄今为止所做的 gif 这是到目前为止的代码 由if 而不是在不
  • 在 WidgetKit 中每分钟更新时间文本标签

    是否可以在小部件中创建显示当前时间并实时更新的文本标签 尝试创建时钟小部件 但小部件每 5 分钟仅更新 1 次 创建时间表没有帮助 使小部件保持最新 不适用于当前时间 仅适用于计时器等 一个可能的解决方案是使用time日期样式 A styl
  • 捕获 SwiftUI 中的错误

    我在某些视图中有一个按钮 它调用 ViewModel 中可能引发错误的函数 Button action do try self taskViewModel createInstance name self name catch Databa
  • SwiftUI - 使用“ObservableObject”和@EnvironmentObject 有条件地显示视图

    我想在我的应用程序中有条件地显示不同的视图 如果某个布尔值为 true 则将显示一个视图 如果为 false 将显示不同的视图 该布尔值位于 ObservableObject 类中 并根据将要显示的视图之一进行更改 PracticeStat
  • SwiftUI 关闭多个模态表

    我在用 sheet isPresented self showModal 在我的根视图中呈现一个模式 在模态中 我正在使用NavigationView引导用户浏览各个页面 对于用户配置文件构建器 在导航堆栈的最后一页中 我正在使用 Envi
  • SwiftUI - SwiftUI 中有等效的 popViewController 吗?

    我正在使用 SwiftUI 希望在点击按钮时能够返回到之前的视图 与我们使用的相同popViewController里面一个UINavigationController 到目前为止有提供的方法吗 我也尝试过使用NavigationDesti
  • 剪裁为形状的 SwiftUI 图像在上下文菜单中具有透明填充

    在我的 SwiftUI 应用程序中 我的资产目录中有一张宽高比为 1 1 的图像 在我的代码中 我有一个Image使用不同的宽高比查看 将图像裁剪为新尺寸 Image My Image resizable aspectRatio conte
  • 在 SwiftUI 文档应用程序中,如何从函数内保存文档

    当前版本的 Xcode 版本 12 5 1 为 macOS 的基于文档的应用程序提供了一个模板 提供以下文档模型 struct MyDocument FileDocument var text String init text String
  • SwiftUI - iOS 15.0 中已弃用“windows”:使用 UIWindowScene.windows

    我有以下代码块 struct StackOverflow View var body some View Text Hello World padding bottom UIApplication shared windows first
  • 带有自定义图像标题的 swiftui 列表

    我想在 swiftui 中为列表设置图像标题 我想要的效果如下图所示 我的代码如下 import SwiftUI struct ContentView View var body some View NavigationView List
  • 在 iOS 上将 SwiftUI 视图转换为 PDF

    我用 SwiftUI 画了一些漂亮的图表 因为它非常简单且容易做 然后我想将整个 SwiftUI 视图导出为 PDF 以便其他人可以以良好的方式查看图表 SwiftUI 没有直接为此提供解决方案 Cheers Alex 经过一番思考 我想到
  • 如何使 SwiftUI 列表行背景颜色扩展整个宽度,包括安全区域之外

    在 SwiftUI 中List 如何制作列表行背景 通过设置 listRowBackground 扩展视图的整个宽度 甚至在安全区域下方 例如 在宽屏 iPhone 例如 iPhone 12 Pro Max 上横向运行时 目前 该单元格在安
  • SwiftUI 图像 ClipsToBounds

    尝试使用 SwiftUI Xcode 11 0 beta 2 我尝试用图像填充视图 Image large resizable aspectRatio contentMode fill frame width 80 height 80 al
  • 当 SwiftUI 中列表数据源为空时,如何在视图中心显示文本消息?

    struct LandmarkList View var body some View NavigationView List landmarkData landmark in LandmarkRow landmark landmark 我
  • SwiftUI 表单中的动态行高

    我正在向 SwiftUI 表单添加控件以帮助用户输入数据 并限制条目 尽管 Forms 有很多值得喜欢的地方 但我发现在该容器之外运行良好的东西在容器内却会发生非常意想不到的事情 并且如何弥补这一点并不总是显而易见的 计划是将数据字段显示为
  • SwiftUI - ForEach 与 Stride

    我试图创建一个 Hstack d 卡列表 也就是说 我想创建一系列行的滚动视图 每行将包含一个 HStack 其中两个视图并排显示 并由某种列表数据结构初始化 struct MyHStackView View var myArray Som
  • tvOS + SwiftUI 在部分之间聚焦

    我已经设置了一个非常简单的 SwiftUI tvOS 应用程序 我在使用 Focus 引擎时遇到了困难 当应用程序启动时 它的重点是 启动 这是可以理解的 向下滑动 转到 StackView 在项目上向左 向右滑动效果很好 但无论我在哪里尝
  • SwiftUI:获取动态背景颜色(深色模式或浅色模式)

    有没有一种方法可以系统地访问 SwiftUI 视图的标准动态背景颜色 无论用户处于浅色模式还是深色模式 例如 我知道以下内容可用于获取主要 例如文本 颜色 let textColor Color primary 但我没有看到任何类似的背景颜
  • SwiftUI 意外地自动弹出 NavigationLink

    我有一个简单的用例 其中一个屏幕使用 NavigationLink 推送另一个屏幕 iOS 14 5 有一个奇怪的行为 即推送的屏幕在被推送后立即弹出 Code NavigationLink destination EmptyView Em
  • 在 SwiftUI 中使用可观察对象切换视图

    我正在练习尝试使用 SwiftUI 中的可观察对象切换视图 但我的代码无法正常工作 我知道我可以用 State 来做到这一点 但我想用可观察的对象来实现这一点 当我单击内容视图中的图像时 图像不会改变 有人能帮我吗 内容视图 swift i

随机推荐

  • TabPageIndicator 文本字体

    我正在使用 ViewPagerIndicator 但没有任何运气 所以我会在这里询问 有没有办法更改 TabPageIndicator 中选项卡的字体 您不需要使用其他第三方库来执行此操作 您可以修改TabView类 在TabPageInd
  • '__len__() 有什么魔力?

    所以列表对象没有简单的长度属性len而是 魔法 len 为什么优先使用该功能len 在列表上而不是在其属性上 有没有功能len 不是简单的查询 len 为何要绕路而没有my list len 想一想可能会有所帮助 len 作为一种方法 您可
  • 刷新 Jquery 数据表中的排序缓存

    我可以看到 当首次使用表初始化时 Jquery 数据表会生成排序缓存表 columns cache 方法 我的一列包含 td 元素 这些元素的跨度上有类 例子 tr td span class SpanColors red span td
  • Android 清单限制平板电脑

    出于商业原因 我想将我的 Android 应用程序严格限制为平板电脑设备 目前 我可以通过设置将应用程序限制为 Honeycomb 设备 android minSdkVersion 11 但下一版 Android 冰淇淋三明治 的平板电脑和
  • 如何在 Android 4.3 api 18 上更改 ActionBar 标题文本的颜色

    我正在使用 appcompat v7 库来支持 api 级别 8 及更高版本的操作栏 我正在尝试更改操作栏标题文本的颜色 GingerBread 中标题文本的颜色正在变化 但是当我使用 JellyBean 在手机上运行该应用程序时 颜色没有
  • iOS 15 上的 AirPods Pro 无法播放音频文件

    我正在使用此代码来播放音频 我的代码在所有耳机型号的 iOS 14 上运行良好 但当客户将设备更新到 iOS 15 并使用 AirPods Pro 时 不会播放任何音频文件 在其他 AirPods 型号上以及通过 iPhone 扬声器播放音
  • 如何克服 HTMLUnit ScriptException?

    我遇到了一行代码的问题 可能会触发一些 js 函数并导致异常 我该如何解决这个问题 box setText link toString client waitForBackgroundJavaScriptStartingBefore 100
  • MacOS 上的 Python“dyld:库未加载”- 错误

    我正在尝试运行一个 python 脚本 该脚本执行一些 API 调用和 Kafka 逻辑 但出现以下错误 dyld Library not loaded executable path Python Tried brew update br
  • 拖动时将标记/图钉保持在地图中间

    我希望当用户在地图上拖动时 标记 图钉可以滚动并位于地图的中心 我有一个简单的 jsfiddle http jsfiddle net upsidown 5xd1Lbpc 6 当用户停止拖动时 图钉将落到地图的中心 但我希望图钉随着拖动而移动
  • PayPal REST API“列出付款”不返回任何条目

    我正在尝试使用 PayPal REST API 来获取付款列表 通常这些付款是通过 eBay 进行的 当我尝试沙箱时 我可以获得一个令牌 然后按预期获得付款列表 但当我切换到实时列表时 列表总是空的 例如 使用卷曲 curl https a
  • 如何在 Android 上获取 google 用户名?

    我看过有关使用的参考AccountManager like 通过 Android 访问 Google 帐户 ID 用户名 不过好像是为了抢authtoken 我只需要访问用户名 不需要密码或任何身份验证令牌 我使用的是android 2 1
  • 为什么 PHP 严格类型允许函数参数的类型错误?

    我正在使用 PHP 7 4 16 我启用了strict types在我的 PHP 文件中 认为它会阻止传递string函数的参数期望int通过扔一个TypeError 然而 该函数实际上接受string并将其强制为int 但是 如果我在函数
  • Bootstrap Offcanvas 导航 - 关闭时不重置背景

    我在 offcanvas div 中有一个很长的链接列表 这些在表单中是因为我想使用它们来导航很长的背景页面 实际上 它是一个目录 画布愉快地弹出 导航链接有效 将背景页面跳转到正确的位置 欢呼 但是 当您选择并链接并导航背景页面到某个位置
  • 导出时 React.Component 是默认扩展吗?

    我正在浏览一些 React 项目 有时会看到 export default gt 但其他时候我看到 export default class Entry extends React Component 两者之间有什么区别吗 导出是否自动扩展
  • 转换 QString 以在 SQL 查询中使用

    我想根据用户输入生成 SQL 查询 以便将一些数据插入数据库 用户可以输入任何内容 Qt 有没有办法将此类用户输入转换为字符串类型值字段 用户可以输入任何内容 这并没有给我们太多参考 但我可以给你一个例子来说明如何设置基本的插入查询 I a
  • 当对存在的目录使用 ListDirectoryDe​​tails 时,FtpWebRequest 返回“550 文件不可用(例如,文件未找到,无法访问)”

    我有一个恼人的问题 阻止我在 FTP 中获取所需的文件 该文件可能有不同的名称 因此我需要首先访问该文件夹并列出其中的文件 然后直接向该文件发出请求 我的问题是 我可以在 Filezilla 中访问此文件 并且也可以完美地发现该文件夹 但是
  • jQuery Mobile 列表上的多个拆分按钮

    jQuery 移动列表中是否可以有多个拆分按钮 我尝试这样做 ul li a href 1 a a href a a href a li ul 但这不起作用 将链接包装在 div div
  • Android 中有波斯(Shamsi 或 Jalali)日历的库或算法吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想转换公历 西方 日期至Persian Shamsi 日期 反之亦然 适用于所有版本的 Android 有没有完整可靠的库或算法 我使用这个算法很
  • 圆形区域内的查询点

    Here is a picture to illustrate the problem 图中有一些特征点显示为蓝色十字 我知道坐标 x y 对于所有功能 现在我想查询哪些要素在圆圈区域 绿色圆圈 内 实际上 大约有 500 个特征和 300
  • VStack 有最大限制吗?

    我从一个干净的项目开始 在 VStack 中添加了 5 个按钮和 5 个垫片 一切都很好 当我在底部添加第 6 个间隔符时 代码突然无法编译 并出现错误 对成员 buildBlock 的引用不明确 是什么导致了这个错误 这是与 SwiftU