我根据文本标签高度和标签高度动态设置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 回答
如果文本中没有空格,请确保在计算UILabel的大小和UILabel本身的
lineBreakMode
属性时使用UILineBreakModeCharacterWrap
或UILineBreakModeClip
.什么是标签的换行模式以及您允许它有多少行?
您可能正确设置标签的高度,但然后告诉我在一行上绘制所有文本:)
您应该检查标签中的行数是否为0(表示需要的数量),换行模式设置为字符中断 . (听起来它现在被设定为截断结束) .