在代码中重新创建字体样式

时间:2012-10-18 18:57:08

标签: ios uifont

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

enter image description here

仔细观察,你会发现很多关于这种风格的小细节。风格是在photoshop中使用以下设置制作的:

  • 高光的白色投影,18%不透明度,2px尺寸
  • 顶部有黑色内部发光,适合2px尺寸的凹陷外观
  • 带有六角色的紫色内部发光:#fd32ff,不透明度为28%,尺寸为4px

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

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

将它与黑色字体相结合,让我有点接近所需的外观......

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

1 个答案:

答案 0 :(得分: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];