Я знаю, что это должно быть очень просто, но я действительно борется с созданием UILabel программно и заставить его вести себя так, как хотелось бы.
Все, что я хочу, это создать ярлык, установить максимальные атрибуты по высоте, ширине и размеру шрифта, а затем уменьшить текст. И/ИЛИ просто обрезать текст для размещения длинных строк текста.
Скажем, что я хочу, чтобы мой ярлык имел текст с максимальной шириной 380, максимальную высоту 20 и максимальный размер шрифта 12.
Итак, вот что я пытался сделать для создания такой метки:
UILabel *fromLabel = [[UILabel alloc]initWithFrame:CGRectMake(91, 15, 0, 0)];
fromLabel.text = [self fromSender];
fromLabel.font = [UIFont fontWithName:ProximaNovaSemibold size:12]; //custom font
fromLabel.numberOfLines = 1;
fromLabel.baselineAdjustment = YES;
fromLabel.adjustsFontSizeToFitWidth = YES;
fromLabel.adjustsLetterSpacingToFitWidth = YES;
fromLabel.size = [fromLabel.text sizeWithFont:fromLabel.font constrainedToSize:CGSizeMake(380, 20) lineBreakMode:NSLineBreakByTruncatingTail];
fromLabel.minimumScaleFactor = MIN_SCALE_FACTOR;
fromLabel.clipsToBounds = YES;
fromLabel.backgroundColor = [UIColor clearColor];
fromLabel.textColor = [UIColor blackColor];
fromLabel.textAlignment = NSTextAlignmentLeft;
[collapsedViewContainer addSubview:fromLabel];
Итак, ярлык появляется, но текст больше 12, а высота всегда равна 21!? Даже если я изменяю значения высоты и размера текста до экстремальных размеров, этот код создает метку некоторого фиксированного размера, который нельзя отрегулировать. Единственное, что я могу сделать меньше, это ширина.
Я должен пересмотреть что-то основное, но я действительно не могу понять, как получить желаемый результат, и не понимаю, почему я получаю поведение, которое получаю.