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://xiahunao.cn/news/2868958.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

5_springboot_shiro_jwt_多端认证鉴权_禁用Cookie

1. Cookie是什么 ​ Cookie是一种在客户端(通常是用户的Web浏览器)和服务器之间进行状态管理的技术。当用户访问Web服务器时,服务器可以向用户的浏览器发送一个名为Cookie的小数据块。浏览器会将这个Cookie存储在客户端,为这个Co…

都2024年了,你还在用两个手指在电脑键盘上打字吗?

前言 前段时间突然想起来一件很有意思的事情:一个找平面设计岗位的应届生,使用电脑的时候居然还在用两个手指打字。 想起这个事情的时候,并不是想嘲笑谁。 准备步入大学或者准备步入职场的小伙伴们,既然找的工作基本上是要接触电…

初出茅庐的小李博客之串口屏开发一个音乐控制器UI

串口屏介绍 串口屏通常指的是一种带有串口接口的显示屏,可以通过串口与其他设备进行通信和控制。这种屏幕通常具有独立的控制器和显示功能,可以直接接入主控系统,实现信息的显示和交互。 开发步骤 准备UI素材 准备了100张音量的图标&#x…

同城预约上门服务APP小程序开发 打造快捷便利生活

随着移动互联网的快速发展,人们的生活方式正在发生深刻的变化。特别是在城市生活中,人们越来越依赖移动应用来解决日常生活中的各种问题。其中,同城预约上门服务APP正成为一种新型的生活服务平台,为人们提供了更加便利和快捷的服务…

2024043期传足14场胜负前瞻

2024043期售止时间为3月17日(周日)21点30分,敬请留意: 本期深盘多,1.5以下赔率1场,1.5-2.0赔率7场,其他场次是平半盘、平盘。本期14场整体难度中等偏上。以下为基础盘前瞻,大家可根据…

SwiftUI自定义ButtonStyle

SwiftUI自定义ButtonStyle 记录一下如何通过自定义SwiftUI自定义ButtonStyle,来给按钮设计一个点击样式 import SwiftUI /*本文章 通过创建ButtonStyle,来自定义按钮的点击动画*/struct PressButtonStyle: ButtonStyle {func makeBody(configuration: …

find_package 总结

本文参考:“轻松搞定CMake”系列之find_package用法详解 原理 find_package 即在指定目录CMAKE_MODULE_PATH 或 CMAKE_PREFIX_PATH查找对应的cmake文件。 find 模式 Module模式(默认):查询Findxxx.cmake配置文件, 在CMAKE_MODULE_PATH 目录Config模式…

什么又是线程呢??

线程: 线程可以并发的执行,但是线程的地址是可以共享的 进程与线程的比较: 进程>线程 线程分三种: 用户线程 只有用户程序的库函数来 用户线程 因为操作系统感知不到 线程,如果有线程在运行,然后不交…

爬虫 某物流

目标地址 url "https://api.jdl.com/aging/feeInquiryNewByJDL" 加密参数 ciphertext和data 搜关键字ciphertext跟着栈走 很明显的DES加密 window globalconst e require(jsencrypt); // const e require(JSEncrypt) // e r(775).JSEncrypt // const t requi…

【js刷题:数据结构数组篇之移除元素】

移除元素 一、题目二、思路三、方法1.暴力解法2.双指针法定义快指针和慢指针代码展示 三、力扣刷题1.删除排序数组中的重复项 一、题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额…

四连杆机构运动学仿真 | 【Matlab源码+理论公式文本】

【程序简介】💻🔍 本程序通过matlab实现了四连杆机构的运动学仿真编程,动态展现了四连杆机构的运动动画,同时给出了角位移、角速度和角加速度的时程曲线,除了程序本身,还提供了机构运动学公式推导文档&…

ffmpeg6.0从demux_decode.c源码探索解封装流程

前言 在播放器的播放视频、音视频媒体文件的推流等实际应用中,解封装(demux)这个操作是不可避免的,也是最基础的操作。 拿播放器播放MP4来说,如果想实现播放器视频画面的播放和音频声音的播放都需要经过这个解封装的步骤。因为MP4是一种媒体文件格式,是一种封装格式,M…

释放人工智能的力量:GPU服务器托管和高电机柜托管的关键作用

随着人工智能技术的不断发展,GPU服务器托管和高电机柜托管也变得愈发重要。这些技术在人工智能领域发挥着关键作用,为AI算法的训练和推理提供了强大的计算支持。 GPU服务器托管是指将GPU服务器放置在专门的数据中心中,通过云服务提供商提供的…

java基础入门day01

day01 java的特点 简单:摒弃了c和c的指针,垃圾回收机制,相对而言简单许多 安全:几乎各大银行都会使用java作为其开发平台 跨平台:可以运行在任何的操作系统之上,windows, linux以及mac平台&a…

安装snap再安装flutter再安装localsend@Ubuntu(FreeBSD下未成功)

Localsend介绍 localsend是一个跨平台的文件传送软件,可以在Windows、MacOS、Linux、Android和IOS下互相传送文件,只要在同一个局域网即可。 localsend官网:LocalSend 尝试安装localsend,发现需要使用flutter, 安装f…

PXVDI企业级PVE免费桌面虚拟化部署教程ProxmoxVE

什么是PXVDI? PXVDI是一款基于Proxmox VE为底层的可商用的免费云桌面套件。对熟悉PVE的人来说,这点非常的点赞。首先是PVE是免费的,其次PVE的免费云桌面方案也极为少数。 根据官方提出的价格清单,免费版和商业版在功能上主要的区…

class file has wrong version 61.0, should be 55.0

class file has wrong version 61.0, should be 55.0 一、Android Studio编译报错二、原因分析三、解决方案四、Java类文件版本号与Java版本之间的对应关系 一、Android Studio编译报错 /home/server/Desktop/T750U/FreemeCompass/src/com/freeme/compass/GradienterView.java…

我用Coze给自己的服务号加了一个多功能的GPT服务机器人

我用Coze给自己的服务号加了一个多功能的GPT服务机器人,可以查新闻,交互式回答问题,查快递,画图画,联网回答问题 可以查快递 试用:搜索觉醒AI

HTTPS证书很贵吗?

首先,我们需要明确一点,HTTPS证书的价格并不是一成不变的,它受到多种因素的影响。其中最主要的因素包括证书的类型、颁发机构以及所需的验证级别。 从类型上来看,HTTPS证书主要分为单域名证书、多域名证书和通配符证书。单域名证书…

自动点击脚本

一个简单的自动点击脚本 配置文件张这样,需要的自己截图 excel配置文件 #!/usr/bin/python3# sys.path.append("C:\\Users\苏\\.vscode\\extensions\\ms-python.vscode-pylance-2023.10.50\\dist\\typeshed-fallback\\stubs\\PyAutoGUI") # print(sys.…