当前位置: 首页 > news >正文

SwiftUI中Mask修饰符的理解与使用

Mask是一种用于控制图形元素可见性的图形技术,使用给定视图的alpha通道掩码该视图。在SwiftUI中,它类似于创建一个只显示视图的特定部分的模板。

Mask修饰符的定义:

func mask<Mask>(alignment: Alignment = .center,@ViewBuilder _ mask: () -> Mask
) -> some View where Mask : View

alignment:相对于被修饰视图的对齐方式。
mask:呈现系统将其alpha值应用于指定视图的视图。

当想要将另一个视图的alpha(不透明度)值应用到当前视图时,使用mask(_:)修饰符。
mask(_:)修饰符的不透明度决定了它下面视图的可见性。

使用任何形状或视图作为蒙版。

在这里插入图片描述
上面的第二个图采用了一个圆形的蒙版,并将其opacity设置为0.8.
mask()修饰符与clipShape()不同,本案例中mask()修饰符即可以修改形状也可以修改不透明度。而clipShape()只调整视图的外部形状。

使用渐变色做蒙版

mask()修饰符中,我们也可以添加渐变色,下面就是一个动态的Mask

  @State private var fillPercentage: CGFloat = 0.0var body: some View {VStack {ZStack {RoundedRectangle(cornerRadius: 25).fill(LinearGradient(gradient: Gradient(colors: [Color.gray.opacity(0.2), Color.gray.opacity(0.5)]), startPoint: .topLeading, endPoint: .bottomTrailing))Text("SwiftUI").font(Font.system(size: 100).bold()).frame(width: 350, height: 200).overlay(Image("Image_3").resizable().frame(width: 350, height: 200).mask(LinearGradient(gradient: Gradient(colors: [.clear, .black]), startPoint: UnitPoint(x: 0, y: 1 - fillPercentage), endPoint: UnitPoint(x: 0, y: 1)))).animation(.easeInOut(duration: 1.0), value: fillPercentage)}.frame(width: 350, height: 200).cornerRadius(25).shadow(radius: 10)Slider(value: $fillPercentage, in: 0...1).padding()}.padding()}

在这里插入图片描述

写在最后

SwiftUI中的Mask功能可以创建复杂的静态或者动态用户界面,这个功能使用好了对于我们的App也是十分增色的,视觉效果也非常好。
本文只是对Mask做了一些简单的理解与使用,有感兴趣的朋友可以继续深入探讨一下。

最后,希望能够帮助到有需要的朋友,如果觉得有帮助,还望点个赞,添加个关注,笔者也会不断地努力,写出更多更好用的文章。

相关文章:

SwiftUI中Mask修饰符的理解与使用

Mask是一种用于控制图形元素可见性的图形技术&#xff0c;使用给定视图的alpha通道掩码该视图。在SwiftUI中&#xff0c;它类似于创建一个只显示视图的特定部分的模板。 Mask修饰符的定义&#xff1a; func mask<Mask>(alignment: Alignment .center,ViewBuilder _ ma…...

全光网络与传统网络架构的对比分析

随着信息技术的飞速发展&#xff0c;网络已经成为我们日常生活中不可或缺的一部分。在这个信息爆炸的时代&#xff0c;全光网络和传统网络架构作为两种主流的网络技术&#xff0c;各有其特点和适用范围。本文将对这两种网络架构进行详细的对比分析&#xff0c;帮助读者更好地了…...

stack overflow复现

当你在内存的栈中&#xff0c;存放了太多元素&#xff0c;就有可能在造成 stack overflow这个问题。 今天看看如何复现这个问题。 下图&#xff0c;是我写的程序&#xff0c;不断的创造1KB的栈&#xff0c;来看看执行了多少次&#xff0c;无限循环。 最后结果是7929kB时, 发…...

mybatis使用笔记

文章目录 打印sql日志mybatis-config.xml方式application.yml里面配置配置类配置方式 其他扫描方式官网文档 mybatis用了那么久&#xff0c;实际一直不明白&#xff0c;做个笔记吧。 打印sql日志 实测&#xff0c;mybatis-config.xml方式好用(记得注掉yml里的相关配置) mybat…...

学习笔记——路由网络基础——路由概述

一、路由概述 1、路由定义与作用 路由(routing)是指导报文转发路径信息&#xff0c;通过路由可以确认转发IP报文的路径。 路由&#xff1a;是指路由器从一个接口上收到数据包&#xff0c;根据数据包的目的地址进行定向并转发到另一个接口的过程。 路由(routing)的定义是指分…...

在量子计算时代,大数据技术将面临哪些挑战和机遇?

在量子计算时代&#xff0c;大数据技术将面临以下挑战和机遇&#xff1a; 挑战&#xff1a; 处理速度&#xff1a;量子计算机具有极高的计算速度&#xff0c;大数据技术需要适应和充分利用这种速度。现有的大数据算法和架构可能需要重新设计和优化&#xff0c;以充分发挥量子计…...

怎么换自己手机的ip地址

在互联网时代&#xff0c;IP地址已经成为了我们数字身份的一部分。无论是浏览网页、下载文件还是进行在线交流&#xff0c;我们的IP地址都在默默发挥着作用。然而&#xff0c;有时出于安全或隐私保护的考虑&#xff0c;我们可能需要更换手机的IP地址。那么&#xff0c;如何轻松…...

搭建 Langchain-Chatchat 详细过程

前言 本文参考官网和其他多方教程&#xff0c;将搭建 Langchain-Chatchat 的详细步骤进行了整理&#xff0c;供大家参考。 我的硬件 4090 显卡win10 专业版本 搭建环境使用 chatglm2-6b 模型 1. 创建虚拟环境 chatchat &#xff0c;python 3.9 以上 conda create -n chat…...

C++期末复习

目录 1.基本函数 2.浅拷贝和深拷贝 3.初始化列表 4.const关键字的使用 5.静态成员变量和成员函数 6.C对象模型 7.友元 8.自动类型转换 9.继承 1.基本函数 &#xff08;1&#xff09;构造函数&#xff0c;这个需要注意的就是我们如果使用类名加括号&#xff0c;括号里面…...

2005-2022年各省居民人均消费支出数据(无缺失)

2005-2022年各省居民人均消费支出数据&#xff08;无缺失&#xff09; 1、时间&#xff1a;2005-2022年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;全体居民人均消费支出 4、范围&#xff1a;31省 5、缺失情况&#xff1a;无缺失 6、指标解释 居民人…...

swaggerHole:针对swaggerHub的公共API安全扫描工具

关于swaggerHole swaggerHole是一款针对swaggerHub的API安全扫描工具&#xff0c;该工具基于纯Python 3开发&#xff0c;可以帮助广大研究人员检索swaggerHub上公共API的相关敏感信息&#xff0c;整个任务过程均以自动化形式实现&#xff0c;且具备多线程特性和管道模式。 工具…...

【Rust】——面向对象设计模式的实现

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…...

C#朗读语音

最近有个需求&#xff0c;需要在C#程序发生异常时候&#xff0c;朗读文字&#xff0c;C#提供了.net framework可以提供简单的语音朗读功能。 引入依赖 using System.Media; using System.Speech.Synthesis; using System.Runtime.InteropServices; //报警音量 SystemSounds.…...

c++ 简单的日志类 CCLog

此日志类&#xff0c;简单地实现了向标准输出控制台和文件输出日志信息的功能&#xff0c;并能在这两者之间进行切换输出&#xff0c;满足输出日志的不同需求。 代码如下&#xff1a; /** CCLog.h* c_common_codes** Created by xichen on 12-1-12.* Copyright 2012 cc_te…...

一文读懂 Compose 支持 Accessibility 无障碍的原理

前言 众所周知&#xff0c;Compose 作为一种 UI 工具包&#xff0c;向开发者提供了实现 UI 的基本功能。但其实它还默默提供了很多其他能力&#xff0c;其中之一便是今天需要讨论的&#xff1a;Android 特色的 Accessibility 功能。 采用 Compose 搭建的界面&#xff0c;完美…...

Redis到底支不支持事务?

文章目录 一、概述二、使用1、正常执行&#xff1a;2、主动放弃事务3、全部回滚:4、部分支持事务:5、WATCH: 三、事务三阶段四、小结 redis是支持事务的&#xff0c;但是它与传统的关系型数据库中的事务是有所不同的 一、概述 概念: 可以一次执行多个命令&#xff0c;本质是一…...

美颜相机「BeautyCam」v12.0.80 祛广告解索会员版(美妆相机功能,展现女神魅力)

软件介绍 美颜相机&#xff0c;一款由知名移动互联网企业Meitu Inc.开发的移动设备照片编辑与美化应用&#xff0c;起初主要针对娱乐消费市场&#xff0c;随后集成了商业营销功能。目前&#xff0c;它已跻身全球最受欢迎的手机摄影应用程序之列。在中国&#xff0c;美颜相机和…...

Oracle的优化器

sql优化第一步&#xff1a;搞懂Oracle中的SQL的执行过程 从图中我们可以看出SQL语句在Oracle中经历了以下的几个步骤&#xff1a; 语法检查&#xff1a;检查SQL拼写是否正确&#xff0c;如果不正确&#xff0c;Oracle会报语法错误。 语义检查&#xff1a;检查SQL中的访问对象…...

[线程与网络] 网络编程与通信原理(六):深入理解应用层http与https协议(网络编程与通信原理完结)

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …...

个人博客的未来出路在哪里?

说起个人博客的未来这就是个悲伤的话题,估计不少个人博客站长们都在苦苦的坚持和挣扎着吧,反正明月这两年感受最深刻的就是又有不少个人博客站点停更和 404 了都。自从坚持写博客这近十来年这种情况也都见怪不怪了,但这两年最突出的就是很多站长都是迷茫和悲观。 明月去年在…...

大模型压缩实战:量化、剪枝与知识蒸馏技术解析与应用

1. 项目概述&#xff1a;当大模型遇见“瘦身”革命最近在跟几个做AI应用落地的朋友聊天&#xff0c;大家普遍都在吐槽一个事儿&#xff1a;现在的大语言模型&#xff08;LLM&#xff09;能力是强&#xff0c;但动辄几十亿、上百亿的参数规模&#xff0c;部署成本高得吓人&#…...

技术奇点之后,人类程序员的历史角色

当人工智能越过技术奇点&#xff0c;代码生成、测试用例设计乃至系统运维都将发生质变。本文从软件测试从业者的视角出发&#xff0c;系统探讨人类程序员在奇点之后可能扮演的六种核心角色&#xff1a;系统守护者、需求翻译官、质量伦理法官、人机交互设计师、持续学习组织者与…...

分布式架构实战:全平台矩阵管理系统的技术实现与性能优化

前言在数字化运营进入全域竞争的今天&#xff0c;多平台账号集群管理已成为企业与开发者的核心技术挑战。传统单体架构的矩阵工具普遍存在算力弹性不足、账号关联风险高、跨平台适配复杂、AI 能力割裂等问题&#xff0c;导致 90% 以上的自研矩阵系统最终以失败告终。本文基于生…...

基于ConvLSTM与天气图的时空序列预测:新能源功率预测实战

1. 项目概述与核心价值最近几年&#xff0c;我身边不少做新能源电站运维和电力交易的朋友&#xff0c;都在为一个问题头疼&#xff1a;发电量预测不准。无论是光伏电站还是风电场&#xff0c;发电功率就像个“看天吃饭”的孩子&#xff0c;云层一遮&#xff0c;风速一变&#x…...

WP Pinch:通过MCP协议为WordPress站点集成AI助手管理能力

1. 项目概述&#xff1a;当你的WordPress站点“长出”AI的爪子 如果你和我一样&#xff0c;每天大部分时间都泡在Slack、Telegram或者WhatsApp里&#xff0c;和团队沟通、处理信息&#xff0c;那么你肯定也烦透了那种“这个内容不错&#xff0c;等我回到电脑前再发到网站上”的…...

构建个人技能库:从代码片段到可复用技能单元的设计与实践

1. 项目概述&#xff1a;当代码遇上魔法&#xff0c;技能库的构建哲学在软件开发的日常里&#xff0c;我们常常会羡慕那些“魔法师”般的同事&#xff1a;他们似乎总能信手拈来一段代码&#xff0c;优雅地解决一个棘手问题&#xff1b;或者拥有一个私人的“百宝箱”&#xff0c…...

让 Agent 也能发邮件:Cloudflare Email Service 正式公测

原文&#xff1a;Cloudflare Email Service: now in public beta. Ready for your agents 邮件是世界上最通用的接口 不需要下载特定 App&#xff0c;不需要接入自定义 SDK&#xff0c;不需要注册新平台。全球几十亿人都有邮箱&#xff0c;任何人都可以通过一封邮件和你的应用…...

Fusion 360 数据迁移与路径重定向实战

1. 为什么需要迁移Fusion 360数据&#xff1f; 很多设计师朋友都遇到过这样的困扰&#xff1a;C盘空间莫名其妙被占满&#xff0c;系统开始频繁提示存储空间不足。打开磁盘分析工具一看&#xff0c;发现Fusion 360的缓存和用户数据竟然占用了数十GB空间。这种情况在长期使用Fus…...

深入T100系统腹地:拆解标准区、测试区与客制开发的协作逻辑

深入T100系统腹地&#xff1a;拆解标准区、测试区与客制开发的协作逻辑 在企业管理系统的复杂生态中&#xff0c;T100以其独特的四区架构和多环境协作机制&#xff0c;为企业的数字化转型提供了稳健的技术支撑。这套架构不仅关乎代码的流转&#xff0c;更是企业业务流程标准化与…...

你还在迷信AI的回答?2026年,信息主权争夺战已全面打响

一、AI信息乱象&#xff1a;个人与企业的双重困境 &#xff08;一&#xff09;个人用户&#xff1a;深陷“AI虚假陷阱”&#xff0c;决策毫无安全感2026年的今天&#xff0c;AI大模型的“幻觉缺陷”非但没有消失&#xff0c;反而因模型参数膨胀而变得更加隐蔽。用户向豆包询问某…...