【发布时间】:2012-10-31 11:44:12
【问题描述】:
原创
我目前正在开发一个应用程序,用户可以在其中将 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”这个神奇的数字。
【问题讨论】:
-
你能澄清“问题”吗?我不太明白您如何调整视图大小:直到到达底部超级视图边缘(这很有意义并且应该与用户体验相匹配)或 b。无限(没有意义,除非超级视图是另一个滚动视图,使其行为与 A 相同。)。
-
是的,也许我的回答描述性不够。我已对原始问题添加了修改。
-
我认为除了类型最大值之外,它不受任何限制(设计),是否有任何特殊原因引起这种担忧?您可以在developer.apple.com/library/ios/#documentation/graphicsimaging/… 查看 CGRect 规范,查找 CGFLOAT_MAX。
标签: objective-c ios xcode uitableview