Как увеличить высоту uilabel согласно контенту? - PullRequest
0 голосов
/ 20 марта 2012

Я хочу изменить высоту uilabel в соответствии с содержимым и отобразить ее в ячейке uitableview, есть настраиваемая ячейка, и ячейка расширяется в соответствии с высотой uilabel. При нажатии кнопки затем высота ячейки увеличивается в соответствии с высотой uilabel.

Заранее спасибо: -)

Ответы [ 4 ]

3 голосов
/ 20 марта 2012

// Рассчитать размер на основе шрифта и режима переноса строки вашего ярлыка

CGSize maxLabelSize = CGSizeMake(300,9999);

CGSize expectedLabelSize = [myString sizeWithFont:myLabel.font 
                        constrainedToSize:maxLabelSize 
                        lineBreakMode:myLabel.lineBreakMode]; 

//adjust the label the the new height.
CGRect newFrame = myLabel.frame;
newFrame.size.height = expectedLabelSize.height;
myLabel.frame = newFrame;
0 голосов
/ 20 марта 2012

Рассчитать размер текста метки и установить координаты как

CGSize labelWidth=[_label.text sizeWithFont:[UIFont fontWithName:@"Verdana" size:12] constrainedToSize:CGSizeMake(200, 15) lineBreakMode:UILineBreakModeTailTruncation];
0 голосов
/ 20 марта 2012
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *text = displayText;

//CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
CGSize constraint = CGSizeMake(tableView.frame.size.width - 30, 20000.0f);

CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:15.0f] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

CGFloat height = MAX(size.height, 44.0f);

return height + 30;

}
0 голосов
/ 20 марта 2012

Попробуйте это

    [label sizeToFit];

Обратите внимание, что метка будет увеличивать свою высоту, сохраняя при этом свою ширину.

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