如何在IOS的UIView中仅使文本/标题覆盖的部分透明

2024-03-11

我正在尝试创建一个UIView with text (the text可能会不断变化)在其之上。我只想要text其中的一部分UIView透明,以便我们可以看透文字。换句话说,我希望文本部分显示内容中的任何内容superview of the UIView。我花了很多时间,但还没有弄清楚。任何人都有想法如何做到这一点?


你想做的事情并不是微不足道的。但只需做一点工作就可以实现。

简而言之,要使文本透明,您需要创建一个剪掉文本的 CALayer,然后将其用作当前 CALayer 的遮罩。

首先创建文本图像。您可以只创建一个 UILabel,在白色背景上使用黑色文本。当我们完成后,黑色将变得透明。白色背景的大小应与您要应用它的 UIView 的大小相同。

现在使用 UIGraphicsGetImageFromCurrentImageContext() 获取此文本的图像。这里应该有很多关于如何做到这一点的例子。

现在使用该图像创建一个新的蒙版层。通过创建一个新的 CALayer 对象并将 image.CGImage 分配给图层的“contents”属性来完成此操作。

现在将该层分配给 UIView 层的“mask”属性。该视图可能只是一个带有白色“backgroundColor”的空视图。

如果一切按计划进行,遮罩的黑色部分(文本)将使白色 UIView 透明。然后将其放在图像上。

请记住,蒙版不会产生动画。因此,如果您想顺利过渡到其他游戏,更改此蒙版将需要更多额外的工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在IOS的UIView中仅使文本/标题覆盖的部分透明 的相关文章

随机推荐

  • 在 Postgres 中将逗号分隔的字符串转换为整数数组

    我正在尝试将逗号分隔的字符串转换为整数数组 integer 以在Where 子句中使用 我尝试过演员 Int这不起作用 感谢您的意见 Example Table A Table B ID Set id 2 14 16 17 1 15 19
  • 错误:无法调用类型缺少调用签名的表达式

    我是打字稿的新手 我有两门课 在父类中我有 abstract class Component public deps any public props any public setProp prop string any return
  • Selenium Grid2 - 是否可以运行 10 个 Chrome 实例?

    目前Selenium Grid2在默认配置下运行显示它可以运行5个firefox浏览器 5个chrome浏览器和1个IE 最多同时有 5 个实例 我如何更改它以便它同时运行 10 个 chrome 实例 我已成功更改节点的最大会话参数 最大
  • NSCollectionView sizeForItemAt 在尝试引用其集合中的项目时始终返回异常

    语境 我正在开发一个 macOS 菜单栏应用程序 它显示一系列项目 这些项目存在于集合视图中并包含一个文本字段 现在 集合视图布局的固定高度为 50 我正在尝试根据文本字段的大小动态增加单元格的大小 我相信做到这一点的最好方法是sizeFo
  • PHP 警告:PHP 启动:无法加载动态库

    我运行 PHP 脚本并收到此错误 PHP 警告 PHP 启动 无法加载动态库 usr local lib php extensions no debug non zts 20090626 ixed 5 2 lin usr local lib
  • 无法在路径加载平台

    使用时filemerge解决HG冲突 我得到以下内容error FileMerge 18002 707 Unable to load platform at path Applications Xcode app Contents Deve
  • 声明朋友时必须声明类键

    当我这样声明朋友时 g 编译器会抱怨这个错误 friend MyClass 代替 friend class MyClass 为什么应该class需要关键字吗 顺便说一句 Borland C 编译器不需要它 难道编译器不能简单地在符号表中查找
  • matplotlib 中自动调整图形大小

    有没有办法自动调整图形大小以正确适合 matplotlib pylab 图像中包含的图 我正在创建根据所使用的数据纵横比不同的热图 子 图 我意识到我可以计算纵横比并手动设置它 但肯定有更简单的方法吗 Use bbox inches 紧 i
  • 在 Flutter Canvas 中使用 Gradient 和 Paint 对象

    我可以使用以下示例绘制半圆 Flutter如何画半圆 半圆 https stackoverflow com questions 57748469 flutter how to draw semicircle half circle 但是 那
  • 根据外键选择填充 django-admin 中的值

    我有一个带有外键引用的模型 看起来像这样 class Plan models Model template models ForeignKey PlanTemplate throttle models IntegerField defaul
  • 设置 Java 应用程序的全局字体

    我需要为我的应用程序设置默认字体 有没有一种不依赖 LaF 的方法可以做到这一点 弄清楚了 致电 setUIFont new javax swing plaf FontUIResource new Font MS Mincho Font P
  • CloudFoundry 时区

    我开发了一个非常以 JodaTime 日期时间为中心的应用程序 日历等 在我的本地计算机上一切正常 我已在 cloudfoundry 部署了我的应用程序 但日历中没有可见的日期 我猜这和cloudfoundry的时区有关 我已将本地运行的应
  • 在谷歌应用程序脚本中以 HTML 形式获取谷歌文档[重复]

    这个问题在这里已经有答案了 如何在谷歌应用程序脚本中获取 HTML 形式的谷歌文档 例如 我可以像这样获取文档正文 DocumentApp getActiveDocument getBody 但是当我登录时什么也没有 function do
  • 如何从 iOS SDK 中的 Facebook 对象获取 Facebook 用户 ID?

    我看到 Facebook 对象中提供了访问令牌 但我没有看到 Facebook 用户 ID 我可以向 我 发出图形请求以获取 Facebook Id 但我不想进行额外的 api 调用 现在有一种简单的方法可以做到这一点 假设你已经有一个FB
  • 将图像转换为 pdf php

    我在用csxi http www chestysoft com ximage twainupload asp将文档扫描为图像 但我必须将 pdf 文件上传到服务器 如何在 php 中将图像转换为 PDF 或者有什么方法可以让 csxi 将文
  • 用于应用程序本地部署的 MSVC 2015 通用 CRT

    据宣布 通用 CRT 将是一个可重新分发的 DLL 这样应用程序本地部署仍然是可能的 我已经安装了 Visual Studio 2015 Express Edition 并且在 SDK 目录中查找 ucrtbase dll 但找不到任何内容
  • 如何添加第三方 Java JAR 文件以在 PySpark 中使用

    我有一些 Java 第三方数据库客户端库 我想通过访问它们 java gateway py 例如 要使客户端类 不是 JDBC 驱动程序 通过 Java 网关可供 Python 客户端使用 java import gateway jvm o
  • 将压缩半字节组合成压缩字节

    给定一个或多个 m128i or m256i每个 16 位元素包含一个半字节 将它们组合并打包为每个 8 位元素一个字节的最快方法是什么 即 hi lt lt 4 lo对于相邻的 16 位元素 这是我想出的最好方法 不幸的是它与标量代码相当
  • 如果内容太宽,请在 HTML 标记中插入省略号 (...)

    我有一个具有弹性布局的网页 如果调整浏览器窗口的大小 该网页会更改其宽度 在这个布局中有标题 h2 其长度可变 实际上是我无法控制的博客文章的标题 目前 如果它们比窗口宽 它们会分成两行 是否有一个优雅的 经过测试的 跨浏览器 解决方案 例
  • 如何在IOS的UIView中仅使文本/标题覆盖的部分透明

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试创建一个UIView with text the text可能会不断变化 在其之上 我只想要text其中的一部分UIView透明