好的我正在研究一个项目,如果我能够以某种方式弄清楚如何更改一个(或所有)单元格以使它们的高度取决于它们所持有的文本量,那将非常有用.我在互联网上发现了一个教程,看起来很可行,但我只是被卡住了,因为我正在复制并将他的代码粘贴到我的应用程序中,并且在他的代码读取的地方弹出一个错误:
NSString *text = [items objectAtIndex:[indexPath row]];
Run Code Online (Sandbox Code Playgroud)
如果有使用本教程的快速修复,或者如果有人可以解释这些项目的全部内容,那就太棒了
您可能应该查看表格如何工作以查看数据如何流入其中的其他示例.
但是,当您准备就绪时,您可以大致了解如何使用可变高度单元格:
1)让heightForRowAtIndexPath返回每行的自定义高度
2)在该方法中,弄清楚该行的文本是什么,然后使用该方法:
- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode
Run Code Online (Sandbox Code Playgroud)
(在NSString上,在UIStringDrawingAdditions中)找出要返回的高度(需要文本高度加上一些填充).宽度是将保存文本的标签的宽度,返回的CGSize保持标签在您使用该文本时的高度.
3)在你的单元格中,你必须将行数设置为0,以便它可以填写,但需要很多.
4)如果使用自定义单元格,则需要确保调整标签高度以适合放置的文本 - 单元格高度已根据heightForRowAtIndexPath方法设置.我认为一个简单的UITableViewCell可能会让文本标签与单元格一起调整高度,如果不是,你也需要调整它们的大小.
5)将您正在使用的文本设置到标签中,然后享受.
理解的关键是你需要高度真正两倍,一次是在heightForRow(控制单元格高度),然后再在实际设置单元格中的文本时(以确保标签大小合适).
| 归档时间: |
|
| 查看次数: |
1876 次 |
| 最近记录: |