Ответ 1
Вы можете взять кулак из 20 символов и получить его ширину, затем вы можете взять ширину остальной части, используя тот же самый способ:
CGSize maximumLabelSize = CGSizeMake(500.0,20.0);//write a really long width
//this will turn the expected length of the labels..
CGSize expectedFirstLabelSize = [[[[NSMutableAttributedString alloc] initWithString:@"A very long string and its first 20 characters should be bold"] substringToIndex:21]
sizeWithFont:[UIFont boldSystemFontOfSize:17] constrainedToSize:maximumLabelSize lineBreakMode:nil];
CGSize expectedLastLabelSize = [[[[NSMutableAttributedString alloc] initWithString:@"A very long string and its first 20 characters should be bold"] substringFromIndex:20]
sizeWithFont:[UIFont normalSystemFontOfSize:15] constrainedToSize:maximumLabelSize lineBreakMode:nil];
то вы будете знать их длину. напр. первая часть - 140 px, остаток - 260 пикселей, а ваша область ярлыков - 100 px, то u может создать две разные метки с 35 px и 65 px. И затем вы можете использовать setAdjustsFontSizeToFitWidth для обеих меток.