如何将CIFilter应用于UILabel的一部分(或产生相同的视觉效果)

时间:2017-11-07 14:16:12

标签: ios swift uilabel cifilter

我需要使用CIFilter更改UILabel中的特定子字符串。一个简单的例子可能如下所示:

enter image description here

有没有办法访问和修改(即使用CIFilter)各个UILabel字形?或者我是否需要通过将多个一个或多个字形标签粘贴在一起来模拟此效果?

总是欣赏聪明的答案。

1 个答案:

答案 0 :(得分:0)

我在这里为类似的UILabel CIFilter类型处理提供了答案:

Make emoji symbols grayscale in UILabel

他们想要整个标签灰度,但您可以替换CIFilter并使用模糊滤镜来模糊整个标签。

根据视图的布局方式,您可能希望将模糊区域之前的文本分成单独的UILabel,然后是模糊的UILabel,最后是UILabel模糊后的文本。将它们全部放入UIStackView中,然后仅将模糊应用于中心标签?

虽然取决于你想要做什么,但这可能不太理想。所以另一种方法是使用我的其他答案中的代码作为起点,然后执行以下操作:

  1. 找到要开始模糊的角色所在的x偏移量。
  2. 为最后一个角色做同样的事。
  3. 当您应用CIFilter时,请仅对要应用模糊的区域使用遮罩。
  4. 如果UIStackView方法对你不起作用,那就是我要追逐它的方法。我希望有所帮助。