动态设置标签高度时遇到问题

时间:2010-12-14 13:25:47

标签: iphone objective-c cocoa-touch uikit

我根据标签高度和标签高度根据文本动态设置tableView单元格高度。当我给出带空格的文本时它工作正常(例如:这是stackoverflow的问题)。但是当我输入长度为两行而没有空格的文本时(例如,ThisisisQuestionforstackoverflow)。这是两条线,文字从第二行开始,最后切割。它占据第一行的完整空间和第二行,如(ThisisQuestionfor .....)。

我正在使用方法

  • +(float)calculateHeightOfTextFromWidth:(NSString *)text:(UIFont *)withFont:(float)width:(UILineBreakMode)lineBreakMode
  • - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

在cellForRowAtIndexPath

float productNameHeight = [DetailsViewController calculateHeightOfTextFromWidth:warObj1.productName :valueFont : valueWidth :UILineBreakModeWordWrap];
UILabel *productNameValue = [[UILabel alloc] initWithFrame:CGRectMake(xCoordinateStartLocatioForValue,yCoordinateStartLocation,valueWidth,productNameHeight)];

你能快点帮我吗。谢谢你提前

2 个答案:

答案 0 :(得分:0)

标签的换行模式是什么,你允许它有多少行?

您可能正确设置了标签的高度,但随后告诉我在一行上绘制所有文字:)

您应该检查标签中的行数是否为0(表示需要的数量),换行模式设置为字符中断。 (听起来它现在已经设定为截断结束了。)

答案 1 :(得分:0)

如果您的文字中没有空格,请务必在计算UILabel的大小和UILabel本身的UILineBreakModeCharacterWrap属性时使用UILineBreakModeCliplineBreakMode。< / p>