swiftUi——颜色

在SwiftUI中,您可以使用Color结构来表示颜色。Color可以直接使用预定义的颜色,例如.red.blue.green等,也可以使用自定义的RGB值、十六进制颜色代码或者系统提供的颜色。

1. 预定义颜色

Text("预定义颜色").foregroundColor(.red)
Text("预定义颜色").foregroundColor(Color.red)

预定义颜色查看 Color | Apple Developer Documentation

2. 使用RGB值创建颜色

Color(red: 0.1, green: 0.2, blue: 0.3, opacity:1) // RGB颜色值在0到1之间,opacity透明度0-1

3. 使用十六进制颜色代码

使用十六进制颜色代码需要一个小的扩展,因为SwiftUI原生并不支持十六进制初始化颜色

extension Color {init(hex: String) {let scanner = Scanner(string: hex)_ = scanner.scanString("#") // 跳过'#'字符var rgbValue: UInt64 = 0scanner.scanHexInt64(&rgbValue)let r = Double((rgbValue & 0xFF0000) >> 16) / 255.0let g = Double((rgbValue & 0xFF00) >> 8) / 255.0let b = Double(rgbValue & 0xFF) / 255.0self.init(red: r, green: g, blue: b)}
}// 使用扩展
let customColor = Color(hex: "#123456")
 Text("使用十六进制颜色代码").foregroundColor(Color.green) // 设置文本颜色.background(Color(hex: "#123456")) // 设置背景颜色,使用了扩展

上述代码的foregroundColorbackground方法接受Color实例,并分别设置文本的前景色和背景色。

4. 使用与UIColor相同的系统颜色

let systemBackground = Color(UIColor.systemBackground) // 系统背景色

5. 渐变色

使用了LinearGradient作为文本的背景,然后使用.mask修饰符将同样大小和内容的Text覆盖在它上面。渐变背景只会显示在掩码文本的形状内部,这样看起来文本就像是有渐变色效果一样。

使用.mask是因为我们要确保渐变填充文本内部的形状,而不仅仅在其背景区域。.foregroundColor(nil)则是为了确保文本本身不显示默认的前景颜色,从而允许掩码显示渐变色。
 

Text(" 渐变色").font(.system(size:80)).fontWeight(.bold).foregroundColor(.clear).background(LinearGradient(gradient: Gradient(colors: [Color.red, Color.blue]),startPoint: .leading,endPoint: .trailing)).mask(Text("渐变色").font(.system(size:80)).fontWeight(.bold))

我们创建了一个LinearGradient,它有红色到蓝色的渐变。该渐变被设定为文本的前景色,从而产生了一个从左到右的渐变效果。

如果想要的渐变方向不同,你只需调整startPointendPoint的参数。

你也能使用.background来相似地设置文本的背景渐变色。但是,需要记住的是,.foreground修饰符是直接应用到文本上的,相对于.background来说可能是更多想要的效果,因为.background修饰符会在文本下面应用渐变色,而不会直接改变文本颜色。


 

6. 阴影

使用.shadow()修饰符来给任何视图(包括文本)添加阴影效果。这个修饰符允许你指定阴影的颜色、半径、以及 x 和 y 轴的偏移量。

Text("这是带阴影的文字").font(.largeTitle).shadow(color: .gray, radius: 2, x: 0, y: 2)

在这个例子中,文本将显示为大标题字体,并且有一个灰色的阴影。阴影的半径是2,偏移量在 x 轴方向是 0,在 y 轴方向是 2。 

 效果如下

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

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

相关文章

【模型量化】神经网络量化基础及代码学习总结

1 量化的介绍 量化是减少神经网络计算时间和能耗的最有效的方法之一。在神经网络量化中,权重和激活张量存储在比训练时通常使用的16-bit或32-bit更低的比特精度。当从32-bit降低到8-bit,存储张量的内存开销减少了4倍,矩阵乘法的计算成本则二…

运行时更改Android应用程序图标

设想一下,当我们正在开发一款应用。随着某个节日的临近,我们可能希望通过更改应用图标来增强用户的节日氛围,例如在图标上添“新年特惠”或者“龙年大吉”等标签。 这种小小的改变看似不经意,却能够吸引用户的注意。 运行时更改应…

网安领域含金量最高的证书有哪些?看这1篇就足够了!

文章目录 一、前言二、CISP三、CISAW四、NISP五、为什么很多人考不下来 一、前言 现在想找网络安全之类的工作,光有技术是不够的,还得有东西证明自己,网安三大敲门砖:CTF、漏洞证明和专业证书。 对于CTF的话只是少数人能参加的&…

Redis保证高可用的三种方式

Redis保证高可用主要有三种方式:主从、哨兵、集群。 主从复制了解吗? Redis主从复制简图 主从复制,是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为 主节点(master),后者称为 从节点(slave)。且…

html、css类名命名思路整理

开发页面时,老是遇到起名问题,越想越头疼,严重影响开发进度,都是在想名字,现在做一下梳理,统一一下思想,希望以后能减少这块的痛苦。 命名规则 [功能名称]__[组成部分名称]--[样式名称] 思路…

C语言数组(下)

我希望各位可以在思考之后去看本期练习,并且在观看之后独立编写一遍,以加深理解,巩固知识点。 练习一:编写代码,演⽰多个字符从两端移动,向中间汇聚 我们依旧先上代码 //编写代码,演⽰多个字…

C //例10.3 从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件中保存。

C程序设计 (第四版) 谭浩强 例10.3 例10.3 从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件中保存。 IDE工具:VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法…

HttpComponents: 领域对象的设计

1. HTTP协议 1.1 HTTP请求 HTTP请求由请求头、请求体两部分组成,请求头又分为请求行(request line)和普通的请求头组成。通过浏览器的开发者工具,我们能查看请求和响应的详情。 下面是一个HTTP请求发送的完整内容。 POST https://track.abc.com/v4/tr…

c语言怎么“简单”表示9个变量互不相等?

c语言怎么“简单”表示9个变量互不相等? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「C语言从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家!&#xff0…

第二次上机测试:Javascript. (第一组)

需求:(注意在规定的时间,在自己的博客提交作品,便于统计测试的完成情况。博客题目《第二次上机测试:Javascript.》) 1、点击按钮,将图片加上边框 2、点击按钮,将图片缩小为长和宽都…

服务器配置免密SSH

在当今互联网时代,远程工作和网络安全已成为信息技术领域的热点话题。无论是管理远程服务器、维护网络设备还是简单地从家中连接到办公室,安全始终是首要考虑的因素。这就是为什么 SSH(Secure Shell)成为了网络专业人士的首选工具…

这把养生局~

查看原文请移步~ 🌈9款好喝解腻水果茶 ✅苹果热橙茶 苹果橙子柠檬红茶冰糖 ✅金桔话梅乌龙茶 柠檬话梅金桔乌龙茶冰糖 ✅柠檬百香果乌龙茶 橙子柠檬百香果乌龙茶冰糖 ✅港式柠檬茶 柠檬青柠红茶冰糖 ✅山楂苹果消食茶 山楂苹果红茶冰糖 ✅桂圆热红茶 桂圆红茶冰糖 …