0

我正在尝试在代码中重新创建以下字体样式:

在此处输入图像描述

仔细观察,你会注意到这种风格的很多小细节。该样式是在 Photoshop 中使用以下设置制作的:

  • 高光的白色阴影,18% 不透明度,2px 大小
  • 顶部有黑色内发光,用于 2px 大小的凹进外观
  • 带有十六进制颜色的紫色内发光:#fd32ff,不透明度为 28%,大小为 4px

要重新创建投影,我只是计划将 UILabel(将包含字体)设置为具有投影和颜色,如下所示:

myLabel.layer.shadowColor = [UIColor whiteColor].CGColor;
myLabel.layer.shadowOffset = CGSizeMake(0.0, 2.0);

将它与黑色字体结合起来让我有点接近想要的外观......

任何人都可以给我任何提示来指出我在代码中重新创建紫色发光效果的正确方向吗?我是否需要覆盖 draw rect 来绘制标签并在那里做些什么?

4

1 回答 1

0

这是非常具体的东西......但如果其他人想要重新创建这种字体,这和我得到的一样接近。

您必须访问 ProximaNova 字体并将它们也添加到您的项目中。

我获得 3 种颜色的解决方案是使用 2 个标签,一个标签实现“前两种”颜色,一个标签实现最后一种底部颜色(在本例中为白色)。

    UILabel *whiteDocumentNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 35)];
    whiteDocumentNameLabel.backgroundColor = [UIColor clearColor];
    whiteDocumentNameLabel.textAlignment = UITextAlignmentCenter;
    whiteDocumentNameLabel.font = [UIFont fontWithName:@"ProximaNova-Bold" size:24];
    whiteDocumentNameLabel.text = @"MyText";
    whiteDocumentNameLabel.textColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:.18];

    UILabel *documentNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, -1, whiteDocumentNameLabel.frame.size.width, whiteDocumentNameLabel.frame.size.height)];
    documentNameLabel.backgroundColor = [UIColor clearColor];
    documentNameLabel.textAlignment = UITextAlignmentCenter;
    documentNameLabel.font = whiteDocumentNameLabel.font;
    documentNameLabel.text = whiteDocumentNameLabel.text;;
    documentNameLabel.textColor = [UIColor blackColor];
    documentNameLabel.layer.shadowColor = [UIColor colorWithRed:253.0 / 255.0 green:50.0 / 255.0 blue:255.0 / 255.0 alpha:1].CGColor;
    documentNameLabel.layer.shadowRadius = .75;
    documentNameLabel.layer.shadowOpacity = .2;
    documentNameLabel.layer.shadowOffset = CGSizeMake(0, 0);
    [whiteDocumentNameLabel addSubview:documentNameLabel];
于 2012-10-22T20:33:20.067 回答