似乎没有属性可以更改字距。从 C4Label 获取 UILabel 然后从那里去的最好方法是什么?
问问题
37 次
1 回答
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 已在现代化列表中,但尚未实现。
于 2013-09-27T18:27:19.237 回答