【问题标题】:How do you adjust the kerning of a C4Label?如何调整 C4Label 的字距?
【发布时间】:2013-09-27 01:45:30
【问题描述】:

似乎没有更改字距的属性。从 C4Label 获取 UILabel 然后从那里去的最好方法是什么?

【问题讨论】:

    标签: ios c4


    【解决方案1】:

    很遗憾,是的。

    C4Label最初是在iOS5出来的时候设计的,在iOS6发布时不需要做任何修改……在iOS6之前UILabel不支持属性字符串的使用。由于C4Label 本质上包装了UILabel 的一个实例,它也没有(现在仍然没有)直接访问属性字符串的使用。

    但是,鉴于 C4Label 包装 UILabel 可以通过以下方式添加字距调整:

    -(void)setup {
        //Create a label
        C4Label *l = [C4Label labelWithText:@"this is kerning"];
        l.numberOfLines = 2;
    
        //Create a key
        NSString *kernKey = (NSString *)kCTKernAttributeName;
        //Create a value
        NSNumber *kernValue = @20;
        //Create an attributed string
        NSMutableAttributedString *attStr = [NSMutableAttributedString new];
        //set the attributed string with the text, using the value as a dictionary
        attStr = [attStr initWithString:l.text attributes:@{kernKey:kernValue}];
    
        //set and center the text
        l.label.attributedText = attStr;
        l.textAlignment = ALIGNTEXTCENTER;
    
        //resize and position the frame
        l.frame = CGRectMake(0,0,320, 80);
        l.center = self.canvas.center;
    
        [self.canvas addLabel:l];
    }
    

    C4Label 已在现代化列表中,但尚未实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      • 2012-12-08
      相关资源
      最近更新 更多