如何从 SwiftUI 中的函数返回按钮?

2024-02-09

我需要根据一些参数动态创建一个按钮

func buildButton(parameter : Parameter) -> Button {
        switch (parameter){
            case Parameter.Value1:
                return Button(
                    action: {
                        ...
                },
                    label: {
                        ...
                }
            )
            case Parameter.Value2:
                return Button(
                    action: {...},
                    label: {
                        ...
                }
            )
        }
    }

但编译器给了我这个错误:

对通用类型“Button”的引用需要 <...> 中的参数。插入“>”

所以如果我点击Fix,函数声明变为

func buildButton(parameter : Parameter) -> Button<Label:View>

编译器给出

使用未声明的类型“”

我需要在这里插入什么才能返回Button?


我不确定获得一个 Button 有多重要,但如果您只需要将其显示在另一个 SwiftUI 视图中而不需要进一步细化,则可以返回some View。您只需将所有按钮嵌入 AnyView 中。

func buildButton(parameter : Parameter) -> some View {
        switch (parameter){
            case Parameter.Value1:
                return AnyView(Button(
                    action: {
                        ...
                },
                    label: {
                        ...
                })
            )
            case Parameter.Value2:
                return AnyView(Button(
                    action: {...},
                    label: {
                        ...
                })
            )
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 SwiftUI 中的函数返回按钮? 的相关文章

  • Swift 中的柯里函数

    我想创建一个返回柯里函数的函数 如下所示 func addTwoNumbers a Int b Int gt Int return a b addTwoNumbers 4 b 6 Result 10 var add4 addTwoNumbe
  • Xcode 10 Beta 5 — clang:错误:链接器命令失败,退出代码为 1

    有人可以帮我吗 我的项目一切正常 但更新到 Xcode10 Beta5 后 尝试在 iPhone 上运行该应用程序时出现此错误 然而模拟器可以工作 请帮助我 我已经对这个问题进行了网络搜索并发现this https stackoverflo
  • Swift:如何减少 didupdatelocations 调用

    我想出了一些代码来打印我所在位置的地址和邮政编码 这是在 didupdatelocation 函数中完成的 我遇到的唯一问题是 didupdatelocation 函数每秒都会更新该地址 因为这电池效率非常低 所以我一直在寻找使用间隔的方法
  • SwiftUI:状态栏颜色

    有没有办法将 SwiftUI 视图的状态栏更改为白色 我可能错过了一些简单的东西 但我似乎找不到在 SwiftUI 中将状态栏更改为白色的方法 到目前为止我只看到 statusBar hidden Bool 状态栏文本 色调 前景色可以通过
  • 当 UITextField 已满或空时显示警报 Swift

    下面的代码中 如果 userNameTF 或 passwordTF 已满或为空 则会显示警报 IBAction func LoginBtn sender AnyObject let userName userNameTF text let
  • 需要使用手机后退按钮返回 Web 视图的帮助

    这是我的代码 package com testappmobile import android app Activity import android os Bundle import android view KeyEvent impor
  • 如何将字符串日期转换为 NSDate?

    我想转换字符串 2014 07 15 06 55 14 198000 00 00 to an NSDate在斯威夫特 尝试这个 let dateFormatter NSDateFormatter dateFormatter dateForm
  • iOS 中的构建对象文件扩展名是什么?

    当我在项目中构建java对象类时 将创建带有 class扩展名的构建文件 并且人类不可读 快速构建文件怎么样 example car java gt build gt car class 构建后会是什么 car swift gt build
  • 将按钮文本放在一行上

    我的按钮文本在 safari 中显示在一行上 即使在初次单击后 但是在 google chrome 上 当您第一次到达该按 钮时 我的按钮将显示在一行上 但是当您浏览更多帖子并再次遇到 加载更多 按钮时 文本搞砸了 这只发生在谷歌浏览器上
  • 为什么我的视图仍然以横向呈现?

    我的视图是由导航控制器控制的 因此我将导航控制器支持的方向设置为明确的纵向和纵向UpSideDown 这可以工作 但是如果调用视图时前一个视图处于横向状态 它将以横向方式呈现并保持横向状态 直到设备旋转 如何防止这种情况发生 这是我的代码
  • 当按钮处于加载状态时,如何向按钮添加微调器图标?

    Twitter 引导按钮 http getbootstrap com javascript buttons有一个很好的Loading 状态可用 问题是它只显示一条消息 例如Loading 通过了data loading text像这样的属性
  • SKNode 上的 runAction 未完成

    我使用 NSOperation 子类来获取串行执行SKAction正如这个问题中所描述的 如何在 Swift 中子类化 NSOperation 以将 SKAction 对象排队以进行串行执行 https stackoverflow com
  • iOS 13 beta 外部屏幕上的 OverscanCompensation

    我正在测试一个应用程序的测试版 但遇到了外部屏幕的问题 我们看到应用程序周围有黑色边框 我们之前可以通过设置来纠正它overscanCompensation to none但在 iOS 13 中 该设置根本没有任何效果 我们曾经看到一个错误
  • iOS:Swift - 如何在触摸时向地图添加精确定位并获取该位置的详细地址?

    我想在 iOS 地图的触摸上添加注释并获取各个位置的详细地址 地标 我如何在 Swift 中实现这一目标 提前致谢 要对地图上的触摸做出反应 您需要为地图视图设置点击识别器 in viewDidLoad let gestureRecogni
  • Swift 3 中是否提供内置内部函数?

    我可以在 Xcode 自动完成弹出窗口中看到各种内置函数 如 builtin popount builtin clz 等 我不确定这些是从哪里获取的 单击命令不会导致快速定义或任何文档 Swift 3 中是否有 builtin 或等效的内部
  • Swift 使用哪种通用排序算法?它在排序数据上表现不佳

    我一直在挑选和探索 Swift 标准库sort 其函数为Array类型 令我惊讶的是 我注意到它在已经排序的数据上表现不佳 对数组进行排序Int打乱顺序似乎比对已经排序的同一个数组进行排序快 5 倍 对已打乱顺序的对象数组进行排序比对已按排
  • NSDateFormatter 返回错误的日期 + Swift

    Code let dateString 2016 04 02 var formatter NSDateFormatter NSDateFormatter formatter timeZone NSTimeZone abbreviation
  • Swift 中带圆角的 NSWindow

    我想要一个圆角的窗户 但我在每个角落都有一个白点 Code let effect NSVisualEffectView frame NSRect x 0 y 0 width 0 height 0 effect blendingMode be
  • Swift 中具有透明背景的按钮边框

    我怎样才能做一个UIButton边框看起来像下图 入门 按钮一样具有透明背景吗 我应该如何使用情节提要来实现这一点 或者如何以编程方式实现这一点 设置backgroundColor to clearColor使按钮透明 例如尝试下面的代码
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector

随机推荐

  • Electron 中的自定义 HTML 对话框

    如何 或者甚至可能 在 Electron 中使用自定义 HTML 对话框 我知道 Electron 提供了某些对话框 showMessageDialog showErrorDialog 但这些似乎不允许自定义 HTML 我不想使用本机 HT
  • 时间:2019-03-17 标签:c#mvvm将视图绑定到带标题的tabcontrol

    我有一个带有主视图的 wpf 程序 Window 其中包含一个TabControl来展示几个不同的UserControl意见 子视图 每个选项卡中一个 每个视图都有一个关联的视图模型 我希望绑定TabControl这样我只需要加载一个新的s
  • 如何将所有匹配行拉入一个缓冲区?

    如何将所有匹配的行拉入缓冲区 给定一个如下文件 match 1 skip skip match 2 match 3 skip 我希望能够发出一个命令将与模式匹配的所有行 在本例中为 match 提取到单个缓冲区中 以便我可以将其放入另一个文
  • 将Class 添加到 getElementsByClassName 数组

    我需要一点帮助 因为我对 getElementsByClassName 感到沮丧 我有一个 svg 地图 其中包含带有类的路径 我现在需要列出某个类别的所有内容并添加另一个类别 现在我有 var testarray document get
  • Phonegap 2.4 Android Proguard 配置

    我已经将构建从 Phonegap Cordova 2 0 升级到 2 4 并且在开发中一切正常 直到我真正开始测试最终发布的 apk 在浪费了大量时间之后 我发现由于某种原因 现在当我运行构建时 我的 proguard 配置正在以某种方式破
  • 在Python中的嵌套字典中存储目录结构

    我正在尝试将目录结构存储在嵌套字典中 目录树 dirA dirB1 file1 txt dirB2 file2 txt templates base html report html test py 嵌套字典如下 dirs dirs dir
  • ASP.NET 启动 Web 性能分析

    我正在尝试确定 ASP NET 应用程序初始启动时间过长 恕我直言 的原因 该应用程序使用各种第三方库 以及许多我确信可以整合的参考资料 但是 我正在尝试识别 并分配责任 这些 dll 以及它们对扩展启动过程的贡献有多大 到目前为止 启动时
  • 嵌套数组上的 MongoDB $elemMatch 投影

    我有一个这样的集合 摘要 id summaryid locations id loc1 datacenters id dc1 1 clusters id cl1 1 servers
  • 如何在 AngularJS 中从 $http.get 返回图像

    在我的控制器中 我调用一个返回承诺的服务 var onComplete function data scope myImage data 在我的服务中 我通过将 url 直接传递给图像本身来调用以获取图像 return http get h
  • C++ 头文件的解析器可以使用标准 Linux 工具提取函数吗?

    有这样的事吗 我需要从头文件中提取 C 函数及其使用的所有参数 如果我能使用标准的 Linux 程序就好了 您可以使用 Understanding 4 C 这是一个前端工具 可以浏览源代码并为源代码生成指标 它还具有强大的API 允许您编写
  • 更改 Coldfusion 上附件的文件名

    我在用着cfmailparam将文件附加到电子邮件 我正在从数据库中获取文件名和路径 通常 附加文件具有唯一的名称 但我可以通过查询数据库表中的以下列来获取其原始文件名 ASSET FILE NAME 独特的名字 ASSET REAL NA
  • 浮点数学有问题吗?

    考虑以下代码 0 1 0 2 0 3 gt false 0 1 0 2 gt 0 30000000000000004 为什么会出现这些不准确的情况 Binary 浮点 https en wikipedia org wiki Double p
  • 使用 Hive 中的 Month() 获取 MM 中的月份

    Select from concat YEAR DATE SUB MAX Column name 60 MONTH DATE SUB MAX Column name 60 01 The month 仅产生single九月之前的月份数字 即一
  • clang-format AlignAfterOpenBracket 列表参数

    这个帖子 https stackoverflow com questions 21966530 clang format always break if params dont fit问了一个类似的问题 当参数太多时如何修改格式 我非常喜欢
  • 如何解释 Devel::Leak 的输出

    我已经跑了Devel Leak http search cpan org ni s Devel Leak 0 03 Leak pm在我的程序中 我不明白它给我的输出 首先 我看到它正在打印一个指针列表 我可以在数组中获取该列表吗 然后我可以
  • 如何检查 IP 地址是否在特定子网内

    我有一个格式为 10 132 0 0 20 的子网和来自 ASP Net 请求对象的 IP 地址 是否有 NET 框架函数可以检查 IP 地址是否在给定子网内 如果不能的话 怎么办呢 位操作 我猜 看一眼使用 C 计算 IP 地址 http
  • 如何让“page-break-inside:void”与“flex-wrap:wrap”很好地配合

    我想得到page break inside avoid以使用多行 Flexbox 布局的形式工作 使用flex wrap wrap 目的只是为了避免打印时破坏表单问题 这适用于单行 Flexbox 或不使用 Flexbox 查看打印预览ht
  • 如何调用或重新启动MathJax?

    我需要 MathJax 重新检查我的所有页面 我的意思是 当页面创建后 一切都很棒 但我需要在 window onload 之后调用它来重新解析页面 因为其内容同时发生了变化 我该怎么做这样的事呢 See http docs mathjax
  • Spring依赖注入:注入接口的所有实例

    如果可能的话 如何使用实现特定接口的所有其他 Spring bean 集合来配置 Spring bean 示例 我想连接CarFactory带有实现以下功能的 bean 列表的 beanCarManufacturer界面 Inject pr
  • 如何从 SwiftUI 中的函数返回按钮?

    我需要根据一些参数动态创建一个按钮 func buildButton parameter Parameter gt Button switch parameter case Parameter Value1 return Button ac