你如何调整C4Label的字距?

时间:2013-09-27 01:45:31

标签: ios c4

似乎没有改变字距的属性。是从C4Label获得UILabel然后从那里出发的最好方法吗?

1 个答案:

答案 0 :(得分: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正在进行现代化改造,但尚未实现。