ios - 如何在 iOS 中实现透视文字效果?

标签 ios swift calayer catextlayer

我真的很想在我的 iOS 应用程序中实现透明的文本样式效果。在 Photoshop 中创建所需的效果非常简单,但我不知道如何用代码完成。

应用于文本的效果仅显示文本下方的背景,但背景会变暗(或变亮)以便可见。根本没有文本填充,它只是增强了文本所在的背景。

这是我想要得到的:
enter image description here
enter image description here

此效果有点类似于 iOS 7.1+ 上的“滑动解锁”文本(在滑动动画出现之前),但我希望显示更多图像。

如何制作出这样的效果?我只需要支持 iOS 8+。

这是在 Photoshop 中创建效果的方法(可能还有更简单的方法):

  1. 打开一张图片
  2. 将图像复制到另一层
  3. 改变混合模式(Overlay 更暗,或者 Screen 更亮)
  4. 添加图层蒙版
  5. Option/alt 单击图层蒙版并将填充更改为黑色
  6. 在需要的地方添加白色文本
  7. 按住Alt键点击图层蒙版

这不仅仅是创建黑色或白色标签并降低不透明度那么简单。这就是你这样做时的样子:
enter image description here

最佳答案

您的操作与 photoshop 完全相同,但步骤更少:

  • 创建一个 CALayer 对象并将云的图像粘贴在其中。
  • 创建一个 CATextLayer 对象并将您的文本放入其中
  • 设置 CATextLayer 的混合模式,它具有与 photoshop 几乎相同的混合模式列表
  • 将文本颜色设置为白色(使用 NSAttributedString 我认为...不记得了)
  • 将文本层的不透明度调整到您想要的程度。默认值为 1.0,这看起来不太好。

将两个层都放在一个 UIView 中。

没有必要将自己局限于 iOS 8。所有这些都适用于 iOS 1.0。

关于ios - 如何在 iOS 中实现透视文字效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25111710/

相关文章:

ios - 从返回 String 或 Double 的 API 获取

swift - 如何在常数时间内返回下标?

ios - String.anotherIndex 导致 "fatal error: cannot increment endIndex"

iOS 动画 clipToBounds、masksToBounds 或类似的

iphone - 如何在 iOS 上使用 AVMutableComposition 和 CALayers 将多个 CALayer 添加到视频文件

iPhone CALayer 图像数组内容值

ios - 如何快速解决日历问题? (很高兴即使在 Objective-c 中也能看到)

ios - iMessage Extension - 在我尝试滑动到另一个应用程序然后返回之前,我无法与 UICollectionView 交互

objective-c - 性能缓慢的 ai objective-c iOS

ios - 多行导航栏标题