4

我试着NSMutableAttributedString用这段代码来设计我的字体:

NSMutableAttributedString* attString = [[NSMutableAttributedString alloc] initWithString:element04.text];
    NSRange range = NSMakeRange(0, [attString length]);

    [attString addAttribute:NSFontAttributeName value:element04.font range:range];
    [attString addAttribute:NSForegroundColorAttributeName value:element04.textColor range:range];

    NSShadow* shadow = [[NSShadow alloc] init];
    shadow.shadowColor = [UIColor colorWithRed:30/255 green:11/255 blue:0/255 alpha:1];
    shadow.shadowOffset = CGSizeMake(2.0f, 2.0f);
    [attString addAttribute:NSShadowAttributeName value:shadow range:range];

    [attString addAttribute:NSStrokeColorAttributeName value:[UIColor colorWithRed:30/255 green:11/255 blue:0/255 alpha:1] range:range];
    [attString addAttribute:NSStrokeWidthAttributeName value:[NSNumber numberWithFloat:-2.0] range:range];

    element04.attributedText = attString;

在此处输入图像描述

这里的问题是阴影处有边界。如何使用没有边框的阴影为文本添加边框?

4

1 回答 1

0

这当然不是我所期望的。我建议您向 Apple 提交错误报告 - 尽管我怀疑您会被告知这种行为是故意的。发生的事情是 stroke 正在投射自己的阴影 - 奇怪的是它正在将其投射到 fill 上,好像分层顺序是:

  • 中风
  • 阴影
  • 填充(前景色)

你可以通过添加一点shadowBlurRadius. 在下图中,我几乎使用了您的代码,但添加了以下内容:

shadow.shadowBlurRadius = 3;

在此处输入图像描述

于 2015-04-30T03:20:31.747 回答