Как выровнять текст UILabel снизу?

Как UILabel можно UILabel снизу. Скажем, мой ярлык может содержать три строки текста. Если входной текст является отдельной строкой, то эта строка должна быть нижней частью метки. Пожалуйста, обратитесь к приведенному ниже изображению для лучшего понимания. Оранжевая область – это полный кадр метки. В настоящее время она имеет одну линию и выровнен по центру. Так что я хочу, он должен всегда выравниваться снизу, независимо от того, сколько строк.

введите описание изображения здесь

Предложите свои идеи.

Спасибо.

6 Solutions collect form web for “Как выровнять текст UILabel снизу?”

Вот два способа сделать это …

1. Сначала установите numberOfLines на 0, а затем используйте свойство UILabel для UILabel чтобы ваш UILabel отображался с его contentSize .

 yourLabel.numberOfLines = 0; [yourLabel sizeToFit]; 

См. Дополнительную информацию по этой ссылке: вертикально выровнять текст внутри UILabel

2. Другой вариант – взять UITextField вместо UILabel и установить userInteractionEnabled в NO как userInteractionEnabled ниже …

 [yourTextField setUserInteractionEnabled:NO]; 

а затем установите свойство contentVerticalAlignment внизу, как contentVerticalAlignment ниже.

 [yourTextField setContentVerticalAlignment:UIControlContentVerticalAlignmentBottom]; 

ОБНОВИТЬ

Кроме того, с UITextField мы не можем достичь нескольких строк. Поэтому вместо этого мы можем использовать UITextView и установить для userInteractionEnabled значение NO . Затем используйте приведенный ниже код, чтобы выровнять его по низу.

 CGFloat topCorrect = ([label bounds].size.height - [label contentSize].height); topCorrect = (topCorrect <0.0 ? 0.0 : topCorrect); label.contentOffset = (CGPoint){.x = 0, .y = -topCorrect}; 

Подкласс UILabel

 @interface Label : UILabel @end 

Затем переопределите drawTextInRect так

 @implementation Label - (void)drawTextInRect:(CGRect)rect { if(alignment == top) { rect.size.height = [self sizeThatFits:rect.size].height; } if(alignment == bottom) { CGFloat height = [self sizeThatFits:rect.size].height; rect.origin.y += rect.size.height - height; rect.size.height = height; } [super drawTextInRect:rect]; } @end 

Я устанавливаю только нижнее ограничение на супер-представление в IB, которое работает для меня, не используя код, а также количество строк для максимального ограничения.

Я была такая же проблема. Вот как я сделал, чтобы выровнять текст до нижней части моего UILabel:

 - (void)alignLabel:(UILabel *)l withText:(NSString *)text verticalAlignOption:(int)vertAlign{ CGSize stringSize = [text sizeWithFont:l.font constrainedToSize:l.frame.size lineBreakMode:l.lineBreakMode]; switch (vertAlign) { case 0: // align = top l.frame = CGRectMake(l.frame.origin.x, l.frame.origin.y, l.frame.size.width, stringSize.height ); break; case 1: // align = bottom l.frame = CGRectMake(l.frame.origin.x, (l.frame.origin.y + l.frame.size.height) - stringSize.height, l.frame.size.width, stringSize.height ); break; case 2: // align = middle // default break; } l.text = text; } 

Ах, вы просто вызываете метод, подобный этому, чтобы выровнять нижнюю часть:

 [self alignLabel:self.mediaTitle withText:@"My text to align" verticalAlignOption:1]; 

Другой вариант: использовать один ярлык для цвета фона, я называю это одним оригиналом Label, а другой для текста, называемого textLabel в моем примере. Затем вычислите высоту и координату Y для textLabel:

 [textLabel sizeToFit]; int height = textLabel.frame.size.height; int yCoord = originalLabel.frame.origin.y + originalLabel.frame.size.height - height; textLabel.frame = CGRectMake( originalLabel.frame.origin.x, yCoord, textLabel.frame.size.width, height); 

Вы можете подклассифицировать UILabel и переопределить метод:

 - (void)drawTextInRect:(CGRect)rect 

вызовите super drawTextInRect с прямоугольником, где вы хотите использовать.

  • Настроить панель навигации, добавив две метки вместо названия в Swift
  • Получить строку первой строки в UILabel
  • Как ограничить максимальную ширину UILabel?
  • Подчеркивание определенной части UILabel
  • Как я могу обнаружить ответвления на определенной части (подстроке) UILabel?
  • Как проверить, является ли UILabel атрибутомText или нормальным текстом программно?
  • Автоматическое автозавершение нескольких строк UILabel обрушивается на 1 лайнер, когда pop
  • Маска обратного слоя для метки
  • UILabel с дополнением в Xamarin.iOS?
  • Как вычислить ширину UILabel на основе длины текста?
  • Как я могу отображать текст на UILabel один за другим после каждого нажатия кнопки?
  • Interesting Posts

    iOS Facebook sdk 3.14 – больше не может получить список друзей?

    Автофокус и автоэкспозиция в AVFoundation на пользовательском уровне камеры

    Swift 2 jSON Call может бросать, но не отмечен попыткой

    Обнаружение, когда приложение становится активным с lockscreen vs other на iOS7

    Извлечение пользователя google из расширения ios

    График просмотра ios viewcontroller в реальном времени с помощью Mutable Array

    inAPP процедура тестирования покупки

    Apple LLVM компилятор 4.1 Ошибка

    Как добавить 1 к номеру в NSMutableArray

    Сбой при автоопределении при применении преобразования: сбой утверждения в –

    Невозможно присвоить значение типа '(String !, Bool, !, NSError!) -> Пустое значение типа UIActivityViewControllerCompletionWithItemsHandler?'

    Ошибка Firebase при настройке приложения – непризнанный селектор, отправленный в класс

    Как каждый пользователь iCloud может сохранить пользовательскую подписку в CloudKit?

    Ошибка утверждения в – с NSFetchedResultsController

    Передача данных с кнопки в повторно используемой пользовательской ячейке

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.