【问题标题】:How could one achieve a see-through text effect in iOS?如何在 iOS 中实现透明文本效果?
【发布时间】:2015-04-22 20:37:23
【问题描述】:

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

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

这是我想要得到的:

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

怎么能做出这样的效果?我只要支持iOS 8+就行了。

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

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

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

【问题讨论】:

  • 既然您提到“仅限 iOS 8”,我建议您查看 UIVisualEffectView 类。我现在没有一个可行的例子。一旦我这样做了,我会回帖作为答案。
  • 我相信它在 iOS 8 中被称为活力。看看这个例子:github.com/ide/UIVisualEffects
  • @dezinezync UIVisualEffectView 有没有运气?

标签: ios swift calayer catextlayer


【解决方案1】:

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

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

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

没有必要将自己限制在 iOS 8 上。所有这些都可以追溯到 iOS 1.0。

【讨论】:

  • 很有趣,听起来很简单。我尝试了这个,但不知道如何设置混合模式。 CATextLayer 没有我想的 setBlendMode 方法。查看我编辑的问题。感谢您帮助我完成这项工作。
  • @Joey 哎呀,看来我给你发了一条流浪汉。我只需要在 OS X 上使用它,结果发现它是一个在 iOS 上不起作用的功能。它被称为“compositingFilter”,我刚刚在文档中看到说明它的值在 iOS 上被完全忽略的行,即使它在 iOS 类定义中并且有 OS X 文档复制/粘贴到它。 :-(
  • 但是,如果您手动执行而不是作为正常 CALayer.compositingFilter 方法的一部分,则可以使用它们。查看投票最多的答案:stackoverflow.com/questions/1658751/…——这可能是一个很好的临时措施,直到 Apple 在 iOS 上正确实施 CALayer。很奇怪,因为 CALayer 是一个向后移植到 OS X 的 iOS 功能。
【解决方案2】:

看看 GPUImage 库,它非常棒,并且有一些非常简洁的图像过滤器,例如叠加、混合、乘法等等。

https://github.com/BradLarson/GPUImage

【讨论】:

    【解决方案3】:

    在 iOS 中,我用 swift 语言编写代码。我创建了一个图层。设置图层属性为 layer.opacity = 0.5。您可以根据需要将此属性更改为透明。向该图层添加文本、绘图等。图层有透视效果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 2019-09-24
      相关资源
      最近更新 更多