Есть ли способ выровнять UILabels по нижнему краю с разными шрифтами?

У меня есть массив 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 и / или рассчитать его точно, чтобы я мог соответствующим образом настроить y pos кадров?

Спасибо


person Bama91    schedule 27.12.2010    source источник


Ответы (2)


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

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

person Joost    schedule 27.12.2010
comment
Спасибо. Это именно то, что мне было нужно. - person Bama91; 28.12.2010
comment
для тех из вас, у кого есть проблемы с спусковым устройством, вы можете отредактировать файл шрифта, как описано здесь: andyyardley.com/2012/04/24/ - person cohen72; 29.01.2013

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

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

person Bama91    schedule 28.12.2010
comment
Думаю, должно быть: newFrame.origin.y + = floor (myLabel.font.descender); - person Fede Mika; 26.09.2012