我正在尝试修改图层中文本的字体属性,但它不会发生。任何人都可以帮忙吗?请在下面找到代码:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
// All HypnosisViews start with a clear background color
[self setBackgroundColor:[UIColor clearColor]];
[self setCircleColor:[UIColor lightGrayColor]];
// Create the new layer object
boxLayer = [[CATextLayer alloc] init];
// Give it a size
[boxLayer setBounds:CGRectMake(0.0, 0.0, 300.0, 85.0)];
// Give it a location
[boxLayer setPosition:CGPointMake(160.0, 350.0)];
// Make half-transparent red the background color for the layer
UIColor *reddish = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.75];
// Get CGColor object with the same color values
CGColorRef cgReddish = [reddish CGColor];
[boxLayer setBackgroundColor:cgReddish];
// Make it a sublayer on the view's layer
[[self layer] addSublayer:boxLayer];
NSString *text2 = @"You are me.";
UIFont *font2 = [UIFont fontWithName:@"Times New Roman" size:10.0];
[text2 sizeWithFont:font2];
[boxLayer setString:text2];
}
return self;
}
答案 0 :(得分:8)
要更改CATextLayer的字体/字体大小,您必须为图层的“font”和“fontSize”属性指定值。
或者你必须使用NSAttributedString,在这种情况下使用该字符串对象的值。
你使用的“sizeWithFont”调用是一个NSString添加,它只会计算并返回一个CSSize,其中包含你给它的字体中文本的宽度和高度。由于您未在代码中使用返回的CGSize,因此它绝对没有。
Apple docs中的参考。