Font size and type not applicable with CATextLayer

I am trying to change the font properties of the text inside the layer, but this does not happen. Can anyone help? Please find the code below:

- (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 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; } 
+6
source share
1 answer

To change the font size / font of a CATextLayer, you must assign values ​​to the "font" and "fontSize" properties of this layer.

Or you need to use NSAttributedString, in which case the values ​​of this string object are used.

The "sizeWithFont" you use is an NSString add-on that does nothing but compute and return CSSize with the width and height of the text you give it in the font you give it. Since you are not using the returned CGSize in your code, it does absolutely nothing.

Link in Apple docs .

+8
source

All Articles