Первое, что вам нужно сделать, это получить размер текста.
К счастью, справочник по NSString UIKit предлагает метод, который делает именно это:
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
Это даст вам CGSize
, который вы затем сможете использовать для установки кадра вашего UILabel
или любого другого подкласса UIView
, который вы используете.
Итак, предполагая, что textLayer
- это UILabel
, а не CALayer
, вы получите что-то вроде этого:
UIFont *myFont = [UIFont boldSystemFontOfSize:12.0f];
CGSize myFontSize = [myString sizeWithFont:myFont];
myLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, myFontSize.width, myFontSize.height)];
myLabel.text = newTitle;
myLabel.font = myFont;