3

原来的

我目前正在开发一个应用程序,用户可以在其中将 UITextView 中的字体大小调整为 50pt。就目前而言,他们还可以使用任意数量的字符编辑此 UITextView 中的文本(我的老板希望限制任何类型的规定性行为)。UITextView 然后动态地垂直调整大小以适应文本量。一切都很好。但是,一旦这个 UITextView 的高度超过了一定的大小,任何后续字符都将被添加但将从视图中隐藏,除非我允许 UITextView 可滚动。

我不得不补充一点,这是一个边缘案例。但是,由于该应用程序鼓励这种行为,因此有时可能会遇到此限制。

我是否认为 UITextView 的高度实际上是有限制的?还是这个问题可能是其他问题?

编辑

好吧,也许我误解了我自己的情况。我没有考虑到 textView 位于 tableViewCell 中的事实,而我实际上正在做的是随着 textView 大小的增加而调整单元格的大小。那么 tableViewCell 的高度有限制吗?

回答我的问题

感谢@jere 和@A-Live 的回答,他们帮助很大。我知道感觉自己像个白痴。

A-Live 指出了最大浮点值,这让我突然意识到我犯了一个如此明显和公然的错误。

为了适当地调整 textView 的大小,使用约束建立了 CGSize。为了确保高度可以达到它想要的高度,一个假定无法达到的高数字被用于高度约束(1000)。您可以猜到,1000 不足以达到此目的,因此 textView 停止了。我想这就是为什么提供代码很重要的原因。

CGSize textSize = [textView.text sizeWithFont:textView.font constrainedToSize:CGSizeMake(textView.frame.size.width - PADDING * 2, 1000.0f) lineBreakMode:UILineBreakModeWordWrap];

更新问题的最准确答案是@jere,因为已经向我指出了这一点,我将不得不防止单元格大小达到“2009”这个神奇的数字。

4

2 回答 2

7

请注意,如果您只想为某些单元格而不是所有单元格设置高度,则必须使用委托方法 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath并在那里返回您想要的行高度。

您也可以使用该rowHeight属性,但这适用于整个表格视图。

现在这是Apple 文档中关于委托方法的一个有趣部分:

重要提示:由于底层实现细节,您不应返回大于 2009 的值。

所以我想这一定是最大值或其他东西。如果你的单元格超过 200 或 300 像素,那将是有点疯狂......

于 2012-10-31T14:42:47.577 回答
0

UITextView 类没有最大长度属性,因此您可以在 TextView 中输入需要显示的任意数量的字符。

于 2012-10-31T12:21:49.037 回答