【发布时间】:2014-07-22 15:33:38
【问题描述】:
我正在尝试创建一个包含UITextView 的UITableViewCell,并且当用户在文本视图中输入文本时,单元格应相应增长。
到目前为止,这也很有效,除了boundingRectWithSize 方法在计算新单元格大小时忽略尾随换行符。这是我的方法调用的样子:
CGRect rect = [text boundingRectWithSize:CGSizeMake(self.cellSize.width, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFont fontWithName:@"AvenirNext-Medium" size:14.0]}
context:nil];
如果我例如输入
Test
\n
\n
(换行符显示为“\n”),该方法返回包含两行而不是三行的文本视图的大小。
我尝试了几个options 和其他attributes,但找不到有效的解决方案。我怎样才能以正常的方式做到这一点?
【问题讨论】:
-
您最好尝试使用自动布局来自动调整单元格的大小。见this post。
-
哦,哇,这看起来很有趣。不敢相信我以前从未见过它。谢谢!
-
如果您想使用 textview 显示您的文本,自动布局不会像那篇文章那样轻松地帮助您。我已经在我的应用程序中广泛地完成了这项工作,基本上你仍然需要计算文本的大小并通过属性相关的布局高度约束来增加文本视图。至于你的代码,你为什么不先检查一下文本是否以
\n结尾,如果是,添加一个字符,如A并根据它计算大小? -
你是如何解决这个问题的?
标签: ios uitableview nsstring