【问题标题】:text with outer stroke outline on iOSiOS上带有外部笔划轮廓的文本
【发布时间】:2018-12-11 10:25:30
【问题描述】:

Android 通过外笔画实现轮廓。所以你可以有一个非常粗的轮廓,看起来像这样:

iOS 通过内部笔画实现轮廓。所以粗轮廓会完全消耗内部颜色:

有什么方法可以在 iOS 上创建外描边效果吗?

【问题讨论】:

  • developer.apple.com/library/archive/qa/qa1531/_index.html ?还有你为你的 NSAttributedString 设置了什么属性?笔划的值是多少?
  • 这不是关于如何创建带有笔触填充的文本。这篇文章是关于 iOS 绘制笔画的方式。它通过在字符的inside 上绘制笔画(即内部笔画)来做到这一点。这样,如果我使用非常粗的轮廓,填充颜色就会被消耗掉。在这种情况下,设置属性与恕我直言无关,因为这将讨论从iOS使用的算法转移到如何配置内部笔划。但为了完整起见: NSStrokeWidthAttributeName: -10; NSStrokeColorAttributeName:黑色颜色。我想知道是否可以创建 outer 笔触
  • 抱歉,误读,我认为该值(正/负)有助于设置内/外笔划。并且对于外面,填充颜色存在“问题”
  • @P.Melch 你找到解决办法了吗?

标签: ios uilabel stroke outline


【解决方案1】:

我使用这个库实现了相同的功能: https://github.com/tobihagemann/THLabel

但是,我必须做更多的事情。如果你的标签显示一个复杂的属性字符串,带有一些属性,比如下划线,删除线,这个库将无法帮助你完全解决。

我在draw(_:) 中进行了一些更改,仅根据看起来像外部笔划的主要文本形状手动绘制填充图像。 https://github.com/dungntm58/THLabel/blob/swift/THLabel/THLabel.swift 不幸的是,它在某些情况下无法正常工作。我希望它能帮助你解决你的问题。

编辑:我更新了我的代码来解决很多关于标签阴影的问题,我认为它会完美地工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 2020-12-02
    • 2012-05-28
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    相关资源
    最近更新 更多