0

我想在 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;
4

1 回答 1

0

您可以将此处描述的原型单元方法与[label sizeToFit]. 这里有一个工作示例项目

于 2013-10-21T20:16:16.633 回答