gpt4 book ai didi

ios - 在 NSAttributedString 文本下绘制稀松布 ("Blurry Transparent Rectangle")

转载 作者:行者123 更新时间:2023-11-28 21:47:12 25 4
gpt4 key购买 nike

我将文本放在各种图像之上,然后遇到 this article on overlaying text on images 建议在文本边界周围放置模糊的深色矩形,以帮助它从图像中脱颖而出。基本上,就好像文本的阴影是一个矩形。他们称之为稀松布。

我首先通过真正模糊阴影来尝试这个,但是对于细文本它真的不可见。我想我需要以某种方式在文本后面绘制一个模糊/阴影的矩形。我想有一些方法可以用 CoreGraphics/CoreText 来绘制它。由于我主要处理 OpenGL,因此我在使用这两种方法中的任何一个方面都不是很有经验。

对于在绘制 NSAttributedStrings 时尝试创建模糊的矩形阴影有什么建议吗?我能否以某种方式使阴影来自另一个对象(如矩形)而不绘制该对象。

最佳答案

使用 CALayer 可以很简单地做到这一点 shadowPath属性(property)。正常用法如下所示:

myLabel.layer.shadowPath = [UIBezierPath bezierPathWithRect:myLabel.layer.bounds].CGPath;
myLabel.layer.shadowRadius = 10;
myLabel.layer.shadowOpacity = 0.5;

在你的例子中,听起来你想要一个更大的盒子围绕着你的标签,所以你需要改变传递给 +bezierPathWithRect: 的矩形。该路径在图层的坐标空间中指定(即左上角为 0,0),因此如果您想要一个从标签左侧 50pt 开始并在标签上方 30pt 处开始且大小为 200x100pt 的框,您可以这样做这代替:

myLabel.layer.shadowPath = [UIBezierPath bezierPathWithRect:CGRectMake(-50, -30, 200, 100)].CGPath;

...然后根据您的喜好调整 shadowRadiusshadowOpacity 属性。

关于ios - 在 NSAttributedString 文本下绘制稀松布 ("Blurry Transparent Rectangle"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29657008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com