SwiftUI中三大渐变色的介绍

在SwiftUI中,渐变色是一种常用的视觉效果,用于创建平滑过渡的颜色变化。通过使用渐变色,我们可以实现丰富多彩的界面设计,增强用户体验。

1. 渐变色的种类和用途

种类:

  1. 线性渐变(Linear Gradient):沿着一条直线方向渐变。
  2. 径向渐变(Radial Gradient):从一个中心点向外辐射渐变。
  3. 角度渐变(Angular Gradient):围绕中心点按照一定角度方向渐变。

用途:
渐变色常用于按钮、背景、文本等元素的样式设计,使界面更加生动和吸引人。

2. 线性渐变(Linear Gradient)

概念:
线性渐变是沿着一条直线方向渐变的效果,由起始颜色和结束颜色组成。

基本用法:

LinearGradient(gradient: Gradient(colors: [Color.red, Color.blue]), startPoint: .top, endPoint: .bottom)

参数解释:
gradient:指定渐变的颜色数组。
startPoint:指定渐变的起始点,取值类型为UnitPoint
endPoint:指定渐变的结束点,取值类型为UnitPoint

代码举例:

var body: some View {VStack(spacing: 30, content: {RoundedRectangle(cornerRadius: 25).fill(LinearGradient(gradient: Gradient(colors: [Color.red, Color.blue]), startPoint: .top, endPoint: .bottom)).frame(width: 300, height: 200)RoundedRectangle(cornerRadius: 25).fill(LinearGradient(gradient: Gradient(colors: [Color.cyan.opacity(0.4), Color.cyan]), startPoint: .topLeading, endPoint: .bottomTrailing)).frame(width: 300, height: 200)})}

在这里插入图片描述

3. 径向渐变(Radial Gradient)

概念:
径向渐变是从一个中心点向外辐射渐变的效果,由中心颜色和边缘颜色组成。

基本用法:

RadialGradient(gradient: Gradient(colors: [Color.yellow, Color.orange]), center: .center, startRadius: 0, endRadius: 100)

参数解释:
gradient:指定渐变的颜色数组。
center:指定渐变的中心点,取值类型为UnitPoint
startRadius:指定渐变的起始半径。
endRadius:指定渐变的结束半径。

代码举例:

var body: some View {VStack(spacing: 30, content: {Circle().fill(RadialGradient(gradient: Gradient(colors: [Color.blue.opacity(0.3), Color.blue]), center: .center, startRadius: 0, endRadius: 150)).frame(width: 300, height: 300)Rectangle().fill(RadialGradient(gradient: Gradient(colors: [Color.cyan.opacity(0.3), Color.blue]), center: .topLeading, startRadius: 0, endRadius: 300)).frame(width: 300, height: 200)}

在这里插入图片描述

4. 角度渐变(Angular Gradient)

概念:
角度渐变是围绕中心点按照一定角度方向渐变的效果,由多个颜色组成。
苹果官方给出的解释为(如翻译不准,请见谅):

角度渐变也被称为“锥形”渐变。这种渐变根据角度的变化应用颜色函数,相对于一个中心点和定义的起始和结束角度。如果 endAngle - startAngle > 2π,则渐变只绘制最后一个完整的圈。如果 endAngle - startAngle < 2π,则渐变会用渐变位置为零和一的颜色填充缺失的区域,在缺失区域的中间过渡两种颜色。渐变将单位空间中心点映射到填充有渐变的每个形状的边界矩形中。

基本用法:

AngularGradient(gradient: Gradient(colors: [Color.purple, Color.orange, Color.green]), center: .center, startAngle: .degrees(0), endAngle: .degrees(360))

参数解释:
gradient:指定渐变的颜色数组。
center:指定渐变的中心点,取值类型为UnitPoint
startAngle:指定渐变的起始角度。
endAngle:指定渐变的结束角度。

代码举例:

var body: some View {VStack(spacing: 30, content: {Circle().fill(AngularGradient(gradient: Gradient(colors: [Color.purple.opacity(0.3), Color.purple]), center: .center, startAngle: .degrees(0), endAngle: .degrees(180))).frame(width: 300, height: 300)Capsule().fill(AngularGradient(gradient: Gradient(colors: [Color.purple, Color.orange, Color.green]), center: .center, startAngle: .degrees(0), endAngle: .degrees(360))).frame(width: 300, height: 200)})}

在这里插入图片描述

通过以上介绍,您现在了解了SwiftUI中三种常用的渐变色类型:线性渐变、径向渐变和角度渐变。希望这些信息能帮助您更好地运用渐变色来设计各种吸引人的界面。

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

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

相关文章

【时隙ALOHA,CSMA(载波侦听多路访问)carrier sense mltiple access,无线局域网: CSMA/CA】

文章目录 时隙ALOHA时隙ALOHA的效率( Efficiency )纯ALOHA(非时隙)----效率低CSMA(载波侦听多路访问)carrier sense mltiple accessCSMA冲突CSMA/CD(冲突检测)边说边听&#xff08;提高了信道利用率&#xff09;以太网就是用的这个无线局域网: CSMA/CA无线局域网中的 MAC&#…

Transformer+Classification学习笔记

论文名称&#xff1a;An Image is Worth 16x16 Words:Transformers for Image Recognition at Scale [2112.11010] MPViT: Multi-Path Vision Transformer for Dense Prediction (arxiv.org) 参考博客与视频&#xff1a; Vision Transformer 超详细解读 (原理分析代码解读) …

2024年了,Covid19怎么发?PANoptosis程序性死亡,抓紧上车!

说在前面 大家众所周知的新冠&#xff0c;其实早在19年末&#xff0c;20年初的时候很多人都抓住了这个热点发到了好文章&#xff0c;Covid-19&#xff0c;这玩意可以做到让一个期刊从2分飙升到20分&#xff0c;且非预警期刊&#xff0c;不过现在退火了&#xff0c;今年是12.7分…

数据结构(十四)----排序算法(1)

目录 一.排序的基本概念 二.插入排序 1.直接插入排序 2.折半插入排序 三.希尔排序&#xff08;Shell Sort&#xff09; 四.交换排序 1.冒泡排序 2.快速排序 快速排序算法的效率&#xff1a; 快速排序算法的稳定性&#xff1a; 这一篇博客的重点主要是快速排序&#x…

2024小红书电商实战营,养号打造IP/选爆品/开店铺/爆款笔记/等等(24节)

我们非常荣幸地为大家带来2024小红书电商实战营的第一期&#xff0c;在这里我们将带领大家一起深入学习如何利用小红书平台&#xff0c;实现个人品牌的发展和商业利益的增长。 首先&#xff0c;我们将讨论养号的重要性以及如何打造个人品牌。无论是建立自己的受众群体还是提高…

微信小程序知识点归纳(一)

前言&#xff1a;适用于有一定基础的前端开发同学&#xff0c;完成从网页开发到小程序开发的知识转换。 先立框架&#xff0c;后砌墙壁 回顾&#xff1a;了解微信小程序开发流程-CSDN博客 初始页面结构&#xff0c;三部分pages、utils、配置&#xff0c;分别存放页面、工具类…

【解决】Unity Build 应用程序运行即崩溃问题

开发平台&#xff1a;Unity 2021.3.7f1c1   一、问题描述 编辑器 Build 工程结束&#xff0c;但控制台 未显示 Build completed with a result of Succeeded [时间长度] 信息。该情况下打包流程正常&#xff0c;但应用程序包打开即崩溃。   二、问题测试记录 测试1&#xf…

百面算法工程师 | 传统图像处理——OpenCV

本文给大家带来的百面算法工程师是传统图像处理的面试总结&#xff0c;文章内总结了常见的提问问题&#xff0c;旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中&#xff0c;我们将总结一些几何变换和图像平滑处理&#xff0c;并提供参考的回答及其理论基础&#…

C++自定义日期类的精彩之旅(详解)

在学习了C的6个默认成员函数后&#xff0c;我们现在动手实现一个完整的日期类&#xff0c;来加强对这6个默认成员函数的认识。 这是日期类中所包含的成员函数和成员变量&#xff1a; 构造函数 // 函数&#xff1a;获取某年某月的天数 inline int GetMonthDay(int yea…

常见磁盘分区问题

给磁盘分区有几个主要的原因&#xff1a; 组织和管理数据&#xff1a;分区可以帮助用户更好地组织和管理数据。例如&#xff0c;你可以在一个分区上安装操作系统&#xff0c;而在另一个分区上存储个人文件。这样&#xff0c;即使操作系统崩溃或需要重新安装&#xff0c;你的个…

Docker 使用 Fedora 镜像

Fedora 在 Docker 中的使用也非常简单&#xff0c;直接使用命令 docker run -it fedora:latest bash 就可以 pull 到本地的容器中并且运行。 C:\Users\yhu>docker run -it fedora:latest bash Unable to find image fedora:latest locally latest: Pulling from library/fed…

【瑞萨RA6M3】2. UART 实验

https://blog.csdn.net/qq_35181236/article/details/132789258 使用 uart9 配置 打印 void hal_entry(void) {/* TODO: add your own code here */fsp_err_t err;uint8_t c;/* 配置串口 */err g_uart9.p_api->open(g_uart9.p_ctrl, g_uart9.p_cfg);while (1){g_uart9.…

mysql的隔离性——MVCC

MVCC通过undolog版本链和readview来实现 更新和删除时会写入undolog中。 读已提交&#xff1a;在事务任意读时创建readview&#xff0c;读最新提交的事务 可重复读&#xff1a;在事务第一次读时创建readview

使用Caché管理工具

Cach通过一个web工具来对其进行系统管理和完成管理任务,该方法的一个好处是不必将Cach安装到用于管理的系统上。目前,通过网络远程管理和控制对站点的访问,这些都比较容易。因为数据及其格式信息都直接来自被管理的系统,因此,这也可以最小化跨版本的兼容问题。 本文将描述…

Kubernetes二进制(单master)部署

文章目录 Kubernetes二进制&#xff08;单master&#xff09;部署一、常见的K8S部署方式1. Minikube2. Kubeadmin3. 二进制安装部署4. 小结 二、K8S单&#xff08;Master&#xff09;节点二进制部署1. 环境准备1.1 服务器配置1.2 关闭防火墙1.3 修改主机名1.4 关闭swap1.5 在/e…

(done) 关于 pytorch 代码里常出现的 batch_first 到底是啥?

参考文章&#xff1a;https://pytorch.org/docs/stable/generated/torch.nn.utils.rnn.pad_sequence.html 首先看参考文章里的解释&#xff0c;如下图 从文章描述来看&#xff0c;当 batch_first True 时&#xff0c;输出的张量的 size 是 B x T x *。当 batch_first False…

umi搭建react项目

UMI 是一个基于 React 的可扩展企业级前端应用框架&#xff0c;提供路由、状态管理、构建和部署等功能&#xff0c;可以帮助开发者快速构建复杂的单页面应用&#xff08;SPA&#xff09;和多页面应用&#xff08;MPA&#xff09;。它与 React 的关系是&#xff0c;UMI 构建在 R…

移动端自动化测试工具 Appium 之 main 启动

文章目录 一、背景二、生成xml文件2.1、创建xml方法2.2、执行主类MainTest2.3、自动生成的xml2.4、工程目录2.5、执行结果 三、命令行执行appium服务四、主方法启动类五、集成Jenkins六、总结 一、背景 Jenkins 做集成测试是不错的工具&#xff0c;那么UI自动化是否可以&#…

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

目录 1 自动驾驶驶向何处&#xff1f;2 什么是运动规划&#xff1f;3 运动规划实战教程4 加入我们5 订阅需知 1 自动驾驶驶向何处&#xff1f; 自动驾驶&#xff0c;又称无人驾驶&#xff0c;是依靠计算机与人工智能技术在没有人为操纵的情况下&#xff0c;完成完整、安全、有效…