Вот простой и быстрый способ сделать это.Он основан на коде, который вы можете получить здесь .
Обратите внимание, что вы должны добавить платформу QuartzCore в свой проект и включить в файл, где вы пишете этот код!
Каждый UIView поддерживается CALayer.Вы можете получить в CALayer UIView с помощью свойства .layer.Поскольку UILabel является UIView, вы можете получить его слой поддержки таким образом.Когда у вас есть слой подложки, вы можете установить его свойства backgroundColor, cornerRadius, borderColor и borderWidth.Это должно позволить вам создать закругленный эффект.
Чтобы получить центрированный эффект, попробуйте установить для textAlignment UILabel значение UITextAlignmentCenter.Затем вы можете попробовать установить фрейм UILabel на основе sizeThatFits или, может быть, на основе вызова sizeWithFont для строки, которую вы помещаете в метку.
Вот небольшой быстрый, полностью непроверенный код, с которого можно начать.
Предположим, что где-то вы инициализировали UIFont следующим образом (укажите любой размер шрифта, какой вы хотите).
labelFont = [UIFont systemFontOfSize:14];
Затем для каждой метки установите его следующим образом. I 'м, если вы вытащили текст из массива и поместили в переменную с именем «текст».X_PADDING и Y_PADDING - это расстояние между текстом метки.xLoc и yLoc - это переменные, которые вы используете для отслеживания положения x и y, в которое вы хотите поместить метки.Вы, вероятно, увеличите xLoc на основе textSize + X_PADDING + LABEL_SPACING или чего-то еще (где вы определяете LABEL_SPACING):
CGSize textSize = [text sizeWithFont:labelFont];
CGRect frame = CGRectMake( xLoc, yLoc,
textSize.width + X_PADDING,
textSize.height + Y_PADDING);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.text = text;
label.textAlignment = UITextAlignmentCenter;
CALayer *layer = label.layer;
layer.masksToBounds = YES;
layer.cornerRadius = 7.0; // or whatever works for you
layer.borderWidth = 1.0;
layer.borderColor = [[UIColor redColor].CGColor;
layer.backgroundColor = [UIColor blueColor].CGColor;
// Add the layer into its superview
[yourSuperview addSubview:label];
Надеюсь, это поможет вам начать.