首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

尝试在SwiftUI中创建一个按钮网格(感觉这里缺少了一些基本的东西……)

在SwiftUI中创建一个按钮网格可以通过使用Grid视图来实现。Grid视图是SwiftUI中用于创建网格布局的容器视图,可以将视图按照指定的行数和列数进行排列。

以下是一个示例代码,展示如何在SwiftUI中创建一个按钮网格:

代码语言:txt
复制
import SwiftUI

struct ContentView: View {
    let buttons = ["Button 1", "Button 2", "Button 3", "Button 4", "Button 5", "Button 6"]
    let columns = [
        GridItem(.flexible()),
        GridItem(.flexible()),
        GridItem(.flexible())
    ]
    
    var body: some View {
        ScrollView {
            LazyVGrid(columns: columns, spacing: 16) {
                ForEach(buttons, id: \.self) { buttonTitle in
                    Button(action: {
                        // 按钮点击事件
                    }) {
                        Text(buttonTitle)
                            .foregroundColor(.white)
                            .padding()
                            .background(Color.blue)
                            .cornerRadius(10)
                    }
                }
            }
            .padding()
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

在上述代码中,我们首先定义了一个按钮数组buttons,其中包含了需要展示的按钮标题。然后,我们创建了一个包含三个可伸缩列的columns数组,用于指定网格的布局。

body中,我们使用ScrollViewLazyVGrid来创建一个可滚动的垂直网格视图。LazyVGrid使用了之前定义的columns数组来指定列数和布局。在LazyVGrid中,我们使用ForEach循环遍历buttons数组,并为每个按钮创建一个Button视图。

Button视图中,我们为按钮添加了点击事件,并设置了按钮的样式,包括文本颜色、内边距、背景色和圆角。

最后,我们在ContentView_Previews中预览了ContentView视图。

这样,我们就可以在SwiftUI中创建一个按钮网格了。根据实际需求,你可以根据按钮的数量和布局要求进行调整。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器 CVM:提供弹性计算能力,满足各类业务需求。
  • 云数据库 MySQL:高性能、可扩展的关系型数据库服务。
  • 云原生容器服务 TKE:用于部署、管理和扩展容器化应用程序的高度可扩展的容器服务。
  • 人工智能平台 AI Lab:提供丰富的人工智能算法和模型,帮助开发者快速构建人工智能应用。
  • 物联网开发平台 IoT Explorer:提供从设备接入、数据存储到应用开发的一站式物联网解决方案。
  • 移动推送服务 TPNS:提供高效、稳定的移动消息推送服务,帮助开发者实现消息推送功能。
  • 对象存储 COS:安全、稳定、低成本的云端存储服务,适用于各类数据存储需求。
  • 区块链服务 TBC:提供高性能、可扩展的区块链服务,帮助企业快速搭建区块链应用。
  • 云游戏 GME:提供高品质、低延迟的云端游戏音频服务,提升游戏体验。
  • 云直播 CSS:提供全球覆盖的高品质云直播服务,支持实时音视频传输和互动直播。

请注意,以上仅为腾讯云的一些相关产品,其他云计算品牌商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

解析SwiftUI布局细节(二)循环轮播+复杂布局

SiwftUI文档说道比较好玩一个东西,具体我们后面在看。...这篇我们还是说我们关于SwiftUI东西,再提一下Demo代码我已经提交上Git了,目前Demo进度为一级页面基本上结束,地图点击大头针添加也刚处理完,代码有需要小伙伴可以去Git看看,项目地址...传送门在这 下面是我们值得细说一些点: 1、值得注意 TabView + PageTabViewStyle 这是iOS14新出一个值得我们注意点,PageTabViewStyle...有一个还得说明一下,GeometryReader 改变了它显示内容方式。 iOS 13.5 ,内容放置方式为 .center。 iOS 14.0 则为:.topLeading。...这样基本上循环轮播实现我们基本上都说清楚了,具体里面的一些实现细节代码注释写清清楚楚,还是仔细看看代码结合里面的注释来看,难度不是很大。

12.1K20

Xcode 11 初体验

Xcode 11 初体验 今天更新了 Xcode 11 感觉很不错(主要很多陌生东西,但是很有意思)!这里跟大家一起分享一下!...前面翻译过一篇官方文档:但是大家纷纷反馈看不懂,其实大家更希望看到就是一些带着更新去操作东西。...SwiftUI、storyboad其中我有两篇博客也介绍到了SwiftUI:SwiftUI - 百行代码变十行,Swift再创辉煌 和 WWDC - SwiftUI - 初恋般感觉 代码块 代码块也做了调整...Stash Changes 选择 Stash Changes 选项,会自动弹出一个对话框,提示我们输入一些Comment 信息。点击Stash 按钮自动跳转到Git管理Tab 下。...关于Swift UI 更新 其中我有两篇博客也介绍到了 SwiftUI : SwiftUI - 百行代码变十行,Swift再创辉煌 WWDC - SwiftUI - 初恋般感觉 参考:Apple 官方文档一线搬砖工人

3.2K10
  • 【visionOS】从零开始创建一个visionOS程序

    你也可以添加一个沉浸式场景,将你内容放置人物周围环境。 当你想要创建3D资产或场景从你应用程序显示时,包括一个现实作曲家专业项目文件。...视图为您界面提供基本内容,您可以使用SwiftUI修饰符自定义视图外观和行为。...要创建一个volume,添加一个WindowGroup场景到你应用程序,并将其样式设置为volumetric。这个样式告诉SwiftUI为3D内容创建一个窗口。包含您想要任何2D或3D视图。...下面的例子创建一个带有一些气球静态3D模型volume,这些气球存储应用程序bundle: struct MyApp: App { var body: some Scene {...获得用户许可后,您还可以使用ARKit与沉浸式空间将内容整合到他们周围环境。例如,您可以使用ARKit场景重建来获得家具和附近物体网格,并让您内容与该网格进行交互。

    95140

    Xcode 11 初体验(Xcode工作流改进(Workflows))

    [1240] 今天更新了 Xcode 11 感觉很不错(主要很多陌生东西,但是很有意思)!这里跟大家一起分享一下!...前面翻译过一篇官方文档: 但是大家纷纷反馈看不懂,其实大家更希望看到就是一些带着更新去操作东西。...趁着最新更新正是版本 Xcode 11 于是就有这一篇 Xcode工作流改进(Workflows) 工程创建 [1240] 创建工程进来,就会发现 User Interface 可以进行选择 SwiftUI...使用 Focus Mode 专注使用某一个窗口。 综合这个功能还是不错,我经常也会打开多个页面!来回进去出来麻烦! [1240] 直接点击这个按钮,会横向进行分割。...除此之外你还可以移动鼠标到两个窗口之间,将要打开文件在这里插入一个窗口: [1240] 综合这个功能,更加方便我们对比阅读,快速开发!

    2.5K40

    老人新兵 —— 一款 iOS APP 开发手记

    考虑到身体也已经恢复到了一个不错状态,就决定尝试一个能满足自己需求 app, 一方面是活动活动脑子,另一方面也算重拾当前兴趣。...官方资料中例子不错,但当我想以此为蓝本,实现一个完整 app 时,确发现无从下手。这里仍然要感谢 ObjCCN 王巍编写 SwiftUI 与 Combine 编程一书。...SwiftUI 给我创建一个非常高效环境,短时间内便可以将整个 app 原型跑起来,但当真正地将具体实现以及数据流完全串联起来时才发现一切并不那么简单。...我数据流控制逻辑基本上推倒重写了 4 次,目前版本代码量完成更多功能、更加稳定并且每个 view 数据都无需干预、动态更新情况下少了一半。...感觉 SwiftUI 销毁 view 上代码有比较严重效率 bug( 参见上面的 TabView )。

    2.5K40

    高级 SwiftUI 动画 — Part 1:Paths

    前言 本文中,我们将深入探讨一些创建 SwiftUI 动画高级技术。...这些都是被官方文档完全忽略主题,SwiftUI 帖子和文章也几乎没有提及。不过,它们还是为我们提供了创建一些相当不错动画工具。...我们进入这些隐藏瑰宝之前,我想对一些基本 SwiftUI 动画概念做一个非常快速总结。只是为了让我们能有共同语言,请耐心听我说。...同一个文件Example4,有一个更复杂路径。它基本上是相同形状,但增加了一条连接每个顶点线。...这里一个例子,说明启用 Metal 后,一切都会变得不同。 模拟器上运行时,你可能感觉不到有什么不同。然而,真正设备上,你会发现。视频演示来自iPad第六代(2016)。

    3.8K20

    TCA - SwiftUI 救星?(一)

    而自那时过了两年后, SwiftUI 发布才让这套机制有了更加合适舞台。 SwiftUI 发布初期,我也写过一本相关书籍[3],里面使用了一些类似的想法,但是很不完善。...在这一系列文章里,我会尽量按照自己理解,尝试阐明一些常见问题,希望能帮助读者有一个更加平滑入门体验。 作为开篇,我们先来简单看一看现在 SwfitUI 架构上存在一些不足。...TCA 正是在这方面做出了非常多努力。 第一个 TCA app 来实际做一点东西吧,比如上面的这个 Counter。新建一个 SwiftUI 项目。...在这个简单例子可能显得“小题大作”,但是更加复杂场景里,这有助于我们发现一些潜藏问题。...虽然这需要我们自己去将 View 和 Model 绑定起来,会有些麻烦,但是如果你想要尽快尝试 TCA,却又不能使用 SwiftUI,也可以 UIKit 中进行学习。

    3.3K30

    解析SwiftUI布局细节(一)

    前言 ---- 在前面的文章谈了谈对SwiftUI基本认识,以及用我们最常见TB+NA方式搭建了一个基本场景来帮助认识了一下SwiftUI,具体文章可以SwiftUI分类部分查找...,这篇我准备写UI时候从SwiftUI角度我们具体应该怎样去做,或者说是用SwiftUI我们该从什么角度去解析一个页面。...我们从一个具体实际页面开始梳理一下用SwiftUI实际写UI时候一些基本知识,就如我们Demo页面举例: ?...不知道看到这大家对ViewBuilder应该有了一些认识了吧,我会在后面的参考文章具体在给几个例子地址,大家可以再仔细看看,我们就看我们Demo一个使用,他具体一个场景是这样登录页面,...理解了之后我们也就能总结一下我们用SwiftUI写UI时候一个简单逻辑 1、创建好你需要SwiftUI文件 2、规划好你视图层级,比如说是不是嵌套NavigationView

    2.4K10

    我庆幸果断放弃了SwiftUI:它还不够成熟

    2019 年 WWDC 大会上,苹果推出了一个全新 SwiftUI 框架,这是一个现代化 UI 界面编码结构,它是基于 Swift从头开始构建。...这些年,也有一些SwiftUI 重写 UIKit 应用程序案例,去年奈飞新版 iOS App 登录界面也完全由 SwiftUI 重构。...他发表了一篇博客,总结了尝试并放弃 SwiftUI 过程,这篇文章 Hacker News 上引发了开发者们大量讨论: “恕我直言,SwiftUI一个很好机会,但苹果公司对它投资不足。...考虑到配套创作工具 CiderKit 发展成熟过程也变得愈发复杂,再加上创建各种窗口和 UI 元素实际需求,我决定尝试用用 SwiftUI。...但上图展示效果其实是 AppKit 完成,因为我 SwiftUI 一直实现不了预期功能。大家应该注意到了,中间 SpriteKit 视图上有三个按钮(分别是 +、200% 和 -)。

    5K20

    Android 工程师开发 iOS 是怎样体验?

    iOS 开发最早使用是 Swift4,印象升级 Swift5 时候几乎没有大改动,目前 API 已经趋向稳定,所以如果你想要尝试 iOS 开发的话,Swift 是首选开发语言。...由于 iOS 完全闭源,所以开发时候遇到一些问题,有时不知道从何下手,报错时候直接抛出一个栈地址,看得我一脸懵。...,抽象和组合是一个程序员最基本需要具备职业素质,写之前仔细思考一个如何设计代码,很大程度上就能避免嵌套臃肿问题。...声明式 UI 最大便捷之处,就是所写即所得。极大少了代码量,之前如果写一个复杂界面需要一天时间,那么使用声明式 UI 会节省你一半时间。...SwiftUI一些简单页面还是没问题

    1.7K30

    SwiftUI:Alert弹窗

    如果发生重要事件,通知用户一种常见方法是使用警报Alert弹窗-根据您需要,该弹出窗口包含标题,消息和一个或两个按钮。 但是请考虑一下:何时应该显示警报以及如何显示Alert?...基本SwiftUIAlert具有标题,消息和一个关闭按钮,如下所示: Alert(title: Text("Hello SwiftUI!")...更有趣是我们如何显示警报:我们不将警报分配给变量,然后编写诸如myAlert.show()之类东西,因为这将回到旧“一系列事件”思维方式。...相反,我们创建一些状态来跟踪警报是否显示,如下所示: @State private var showingAlert = false 然后,我们将警报附加到用户界面的某处,告诉它使用该状态来确定是否显示警报...,但是说实话,在哪里使用alert()修饰符都没关系——我们要做就是让Alert存在,并且showAlert为true时显示。

    5.5K20

    AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架视频流App构建

    你已经 iOS 应用程序上工作了一段时间,你认为你很聪明。 你以为你已经做到了,嗯? 是的,你可能可以做一些基本网络。...构建并运行以查看它外观。 您可以看到视频播放器显示了一组基本控件。 这包括一个播放按钮一个静音按钮和用于前进和后退 15 秒跳过按钮。 2....如果你完全不熟悉 KVO,这里一个简单解释:基本思想是你特定属性值发生变化时注册通知。 在这种情况下,您想知道播放器 currentItem 何时发生变化。...您会在左上角看到画中画按钮……否则不会! 缺点是,撰写本文时,iOS 14.5是可用最新版本,VideoPlayer SwiftUI 视图未显示画中画按钮。...尝试设备上运行。

    7K10

    SwiftUI 与前端框架(如 React)状态管理对比

    开发 iOS 应用时,开发者可以轻松地通过声明式语法绑定视图和数据,减少了手动更新 UI 工作量。...复杂状态依赖:大型应用,多个视图可能依赖于同一状态,如何有效管理这些依赖并确保状态一致性,成为一个挑战。...开发者可以函数组件根据需要灵活创建和管理状态,适用于复杂 Web 应用场景。状态管理复杂性:随着项目规模扩大,状态管理变得更加复杂。...以下是一个可以运行简单 SwiftUI 和 React 示例,展示了如何在两个框架管理状态。...,运行该代码后,您将看到一个简单界面,显示当前计数,并有两个按钮可以增加或减少计数。

    14810

    为什么说Flutter可能不是下一件大事?

    React Native 之所以受欢迎,是因为很多人相信它愿景,并认为自己前端 JavaScript 开发人员可以创建一流应用。他们当然做不到,但这并不能阻止他们尝试一番。...因此,如果你想开箱即用地创建看起来像 Android 应用、动起来也像 Android 应用东西,Flutter 很合适——否则……就没那么舒服了。...它不是 HTML 一些人在评论还提到 Flutter 可用于 Web,因此你可以免费获得“另一个”平台。...更不用说苹果也推进自己下一代声明式开发技术:SwiftUI。...(实际上,其中一些要点已经文章反馈了。) 另请注意,我不是 React Native 粉丝。React 遇到了许多相同问题,此外还带来了一些重大性能损失。

    2.2K20

    解析 SwiftUI 两处由状态更新滞后引发严重 Bug

    但是,SwiftUI 一些系统控件并没有完全遵循响应式设计原则,由此某些情况下会出现严重错误,影响用户体验,并使开发者无所适从。...通过手势取消 Sheet 后,快速右滑导航容器会导致应用锁死这是一个 SwiftUI 所有版本存在错误,你可以众多论坛或聊天室里看到不少开发者都在寻找解决方法。...然而,明显地,强迫用户点击 “Dismiss” 按钮并不是一个选择,特别是没有屏蔽手势取消 Sheet 情况下。...状态更新滞后不仅存在于本文介绍两个案例,当开发者遇到类似情况时,可以尝试采用状态更新优先开发策略进行修改。总结今年 SwiftUI 已经进入了第五个年头。...随着版本提高,SwiftUI 功能也确实得到了相当程度增加。不过,即使最新版本一些对 UIKit(AppKit)进行二次包装控件,仍有不少细节处理不到位问题。

    707110

    SwiftUI:视图显示和隐藏动画

    SwiftUI最强大功能之一是能够自定义视图显示和隐藏方式。以前,您已经了解了如何使用常规if条件有条件地包含视图,这意味着当条件更改时,我们可以从视图层次结构插入或移除视图。...转换控制插入和删除方式,我们可以使用内置转换,以不同方式组合它们,甚至创建完全自定义转换。...为了演示这一点,这里一个带有按钮和矩形VStack: struct ContentView: View { var body: some View { VStack {...(PS: 直接在Canvas运行效果可能有差别,所以还是模拟器或者真机运行查看实际效果吧) 如果你想尝试的话,你可以尝试一些其他转换。...一个有用方法是不对称,它允许我们显示视图时使用一个转换,视图消失时使用另一个转换。

    4.6K30

    SwiftUI:猜国旗项目 堆叠按钮

    我们将通过构建基本UI结构来启动我们应用程序,这将会是两个标签告诉用户该做什么,然后是三个显示三个世界国家国旗按钮。 首先,找到这个项目的资源并将它们拖到您资源目录。...of") Text(countries[correctAnswer]) } } 下面我们想有我们可点击标志按钮,虽然我们可以把它们添加到同一个VStack,我们实际上可以创建第二个...渲染原始图像像素,而不是尝试将其重新着色为按钮。...这足以让您对我们用户界面有一个基本了解,而且您已经看到它看起来不太好了——一些标志中有白色,它们与背景融为一体,所有标志都垂直居中屏幕上。...稍后我们会回来对UI进行润色,但现在让我们使用一种蓝色背景色,以便更容易看到标志。因为这意味着我们外部VStack后面放置一些东西,所以我们也需要使用ZStack。

    99620

    SwiftUI 实战应用 ContentUnavailableView

    前言SwiftUI 引入了新 ContentUnavailableView 类型,允许我们应用程序展示空状态、错误状态或任何其他内容不可用状态。...可运行 Demo完整可以运行 Demo 需要有相关环境和依赖项,而代码片段涉及到了一些 Store 和其他可能模型或服务。...由于代码片段 Store 类型未提供,我将使用一个简化版本示例代码来创建一个简单 SwiftUI Demo,以展示 ContentUnavailableView 基本使用。...我们创建一个简单 Product 结构体表示产品,以及一个 ProductStore 类作为存储产品模拟服务。...请确保 Xcode 创建一个 SwiftUI 项目,并将上述代码替换到主 ContentView ,然后运行该项目。

    10911

    解析 SwiftUI 两处由状态更新滞后引发严重 Bug

    但是,SwiftUI 一些系统控件并没有完全遵循响应式设计原则,由此某些情况下会出现严重错误,影响用户体验,并使开发者无所适从。...视图变化在前、状态变化在后 SwiftUI ,某些可编程控件执行一定操作时,会先更新视图,待视图变化完成后再修改与其对应状态。这些控件基本上都是对 UIkit(AppKit)二次包装。...通过手势取消 Sheet 后,快速右滑导航容器会导致应用锁死 这是一个 SwiftUI 所有版本存在错误,你可以众多论坛或聊天室里看到不少开发者都在寻找解决方法。...状态更新滞后不仅存在于本文介绍两个案例,当开发者遇到类似情况时,可以尝试采用状态更新优先开发策略进行修改。 总结 今年 SwiftUI 已经进入了第五个年头。...随着版本提高,SwiftUI 功能也确实得到了相当程度增加。不过,即使最新版本一些对 UIKit(AppKit)进行二次包装控件,仍有不少细节处理不到位问题。

    34720

    Swift源码编译-让底层更清晰

    非常感谢苹果爸爸 Swift 高度开源, 但是日常开发过程感觉还是了一点什么... 其实说白了要是能够我不能懂底层,直接跑进源码看看流程,分析一下原理!这就完美了......各有各方便,这里我们不去说其他先来一个大家非常熟悉:Xcode 1:准备编译目录 创建一个你喜欢文件目录 mkdir swift-source cd swift-source 2:clone 源码...如果觉得无聊可以喝杯茶,最好是一个无聊午后编译哈~ 三、调试Swift源码 要在 Xcode 打开 Swift 项目,请打开/swift-source/build/Xcode-ReleaseAssert...另一个选择是将方案更改为 Wait for executable to be launched,然后终端运行构建产品。...到目前为止,基本操作就完毕了,大家可以自由自在畅玩Swift海洋,注意发量 ~ 哈哈哈~ 四、构建失败原因分析 clone 失败大概率就是网络问题 确保使用正确版本 Xcode。

    1.6K10
    领券