在UITableViewCell中向detailTextLabel添加多行

msh*_*ban 14 iphone uitableview ios

我正在使用UITableView带有单元格样式的UITableViewCellStyleValue1.

我想要多行detailTextLabel,这可能吗?或者我必须制作自定义单元格?

Lil*_*ard 17

你可以设置cell.detailTextLabel.numberOfLines = 2在那里获得2行.但是,我怀疑UITableViewCell会像你期望的那样布局标签.您可能希望子类化UITableViewCell并覆盖-layoutSubviews以根据需要定位标签.你可以打电话[super layoutSubviews]然后调整标签的位置.您可能希望使用-[NSString sizeWithFont:constrainedToSize:lineBreakMode:]计算详细文本标签的正确大小.

或者,您可以尝试进行调整,而不是子类化UITableViewCell,-tableView:willDisplayCell:forRowAtIndexPath:但如果单元格决定需要重新布局,那么您的调整将被删除.我建议你使用子类化方法.

编辑:BTW,使用子类方法,您所要做的就是[UITableViewCell alloc]改为[MyTableViewCellSubclass alloc].由于您没有引入新的方法或属性,因此变量仍然可以保持为UITableViewCell类型,您不必更改任何其他代码.