gpt4 book ai didi

ios - 周围有尖锐阴影的文字

转载 作者:行者123 更新时间:2023-11-28 20:14:59 25 4
gpt4 key购买 nike

我想实现如下图所示的文字外观: enter image description here enter image description here

现在我正在处理字母周围的阴影,但我不知道该怎么做。

到目前为止我尝试了什么:
- 解决方案:

label.shadowColor = [UIColor blackColor];
label.shadowOffset = CGSizeMake(1, 2);

提供了一个很好的锐利阴影,但它不符合我的需求,原因有二:

  1. 它仅从一侧提供阴影,由 shadowOffset 设置,而我需要一个“环绕”阴影;
  2. 此解决方案不会像图片中那样给出阴影的柔和部分(渐变);

-解决方案:

label.layer.shadowOffset = CGSizeMake(0, 0);
label.layer.shadowRadius = 5.0;
label.layer.shouldRasterize = YES;
label.layer.shadowOpacity = 1;
label.layer.shadowColor = [UIColor blackColor].CGColor;
label.layer.masksToBounds = NO;

效果很好,但即使将 shadowOpacity 设置为 1 并将 shadowColor 设置为黑色,它也会产生太柔和的阴影:
enter image description here
显然这还不够,我已经考虑在标签的上下文中绘图。但我不清楚如何通过上下文绘制实现目标。

任何想法将不胜感激。

最佳答案

试试这个创建自定义 UILabel 子类并覆盖以下方法

- (void)drawTextInRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);

CGContextSetShadow(context, CGSizeMake(0.0, 0.0), 10);
CGContextSetShadowWithColor(context, CGSizeMake(0.0, 0.0), 10, [UIColor blackColor].CGColor);

[super drawTextInRect:rect];

CGContextRestoreGState(context);
}

和这个 bottomColorLayer 到 Label

CALayer *bottomColorLayer = [CALayer layer];
bottomColorLayer.frame = CGRectMake(0, labelRect.size.height/2, labelRect.size.width, labelRect.size.height/2);
bottomColorLayer.backgroundColor = [[UIColor colorWithWhite:0 alpha:.5] CGColor];
[label.layer insertSublayer:bottomColorLayer above:(CALayer *)label.layer];

enter image description here

或者如果你想要渐变

CAGradientLayer *bottomGradient = [CAGradientLayer layer];
bottomGradient.frame = CGRectMake(0, labelRect.size.height/2, labelRect.size.width, labelRect.size.height/2);
bottomGradient.cornerRadius = 0.0f;
bottomGradient.colors = @[(id)[[UIColor colorWithWhite:1 alpha:.5] CGColor], (id)[[UIColor colorWithWhite:0 alpha:.5] CGColor]];
[label.layer insertSublayer:bottomGradient above:(CALayer *)label.layer];

关于ios - 周围有尖锐阴影的文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18418435/

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