Любой способ выровнять UILabels снизу с разными шрифтами? - PullRequest
8 голосов
/ 28 декабря 2010

У меня есть массив UILabels внутри contentView пользовательского UITableViewCell. Размер шрифта каждой метки определяется по рангу, чтобы сформировать облако тегов. В методе, который устанавливает ячейку (строку), я перебираю объекты слова, которые поместятся на этой строке, настраивая фрейм для каждой UILabel следующим образом:

CGRect theFrame = CGRectMake(xPosAdjuster,
    theWordRow.rowHeight - thisWord.lblHeight,
    thisWord.lblWidth,
    thisWord.lblHeight);
UILabel *myLabel = [[UILabel alloc] initWithFrame:theFrame];

Это приводит к выравниванию рамок надписей (см. Изображение ниже), но, к сожалению, надписи имеют отступ, который является функцией размера шрифта.

alt text

Есть ли способ убрать отступ (рамку) на UILabel и / или точно рассчитать его, чтобы я мог соответствующим образом отрегулировать положительный угол кадров?

Спасибо

Ответы [ 2 ]

10 голосов
/ 28 декабря 2010

Вот мой последний код, который выстраивает метки:

CGRect theFrame = CGRectMake(xPosAdjuster,
    floor(theWordRow.rowHeight - thisWord.lblHeight),
    floor(thisWord.lblWidth),
    thisWord.lblHeight);
UILabel *myLabel = [[UILabel alloc] initWithFrame:theFrame];
...
CGRect newFrame = myLabel.frame;
newFrame.origin.y -= floor(myLabel.font.descender);
myLabel.frame = newFrame;

alt text

7 голосов
/ 28 декабря 2010

Возможно, вы захотите взглянуть на эту страницу .Есть информация о Документах Apple, однако это было первое, что я нашел.

Так что, похоже, вам придется выполнить некоторые расчеты на основе спуска по UIFont.Вы можете легко получить это значение, оно определяется как свойство на UIFont.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...