Моят размер на етикета е 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];