我想在 uitableviewcell 中显示地址信息,并且正在使用带有自动布局的自定义单元格。我想不是为地址字段设置单独的标签,而是使用单个标签并将地址字段连接在一起并使用换行符“\n”,以便每个地址字段出现在标签中的新行上,然后我将标签行数设置为零,以便自动扩展。
该部分工作正常,但不起作用的是当我尝试计算 heightForRowAtIndexPath 时,它低估了标签大小,因此地址被截断。
例如,这里提取了一些代码:似乎 boundingRectWithSize 可能没有考虑换行符?无论如何,我很想不使用单个标签,而是使用单独的字段,这会更有效,但我认为它不会遇到这些问题。
NSString *description= [self getAddressDescription:_delegate.shoppingCart.shippingAddress]; // formats address fields into single string with newline characters
NSAttributedString *attributedText =
[[NSAttributedString alloc]
initWithString:description
attributes:@
{
NSFontAttributeName: [ViewHelper getDescriptionFont]
}];
CGRect rect = [attributedText boundingRectWithSize:(CGSize){200, CGFLOAT_MAX}
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
CGSize descriptionSize = rect.size;
return kParentChildDefaultSpace + + descriptionSize.height + kParentChildDefaultSpace;