/ / Вземете рамка от реда на текста на UILabel, когато подравняването на текст в центъра - ios, uilabel, core-text, textkit

Вземете рамката на линията на текста на UILabel, когато текстовото подравняване в центъра - ios, uilabel, core-text, textkit

Моят размер на етикета е W= 190 H =322 и текстът в етикета е в центрово подравняване катовъведете описанието на изображението тук

Искам оранжево поле за текст на текстовата рамка от UILabel

Отговори:

0 за отговор № 1

Рамката на вашия UILabel трябва да е със същия размер като I "ts content. Wrapped. Ето как го правите:

Без автоматично оформление:

Трябва да се обадите на sizeToFit на UILabel, за да го свиете до размера на текста, след което да проверите I "ts frame.

textLabel.text = "@yourText";
textLabel.numberOfLines = 1;
[textLabel sizeToFit];
CGSize size = CGSizeMake(textLabel.frame.size.width, textLabel.frame.size.height);

С автоматична настройка:

Просто задайте „numberOfLines“ на 0 и не давайте ограничение на ширината и размерът на етикета ще се побере автоматично.

Основен текст:

UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.text = @"Your text";
float yourFontSize = 20;
while ([label.text sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:yourFontSize]}].width > modifierFrame.size.width)
{
yourFontSize--;
}
label.font = [UIFont systemFontOfSize:yourFontSize];