我试图将UITextView放在UIScrollView中,使用AutoLayout,但没有运气。我试过的是,
self.textViewHeightConstraint.constant = [self.textView sizeThatFits:CGSizeMake(self.textView.frame.size.width, FLT_MAX)].height;
UITextView正在增加其高度,但UIScrollView却没有。有什么我错过的吗?
答案 0 :(得分:75)
经过几天的研究并用UIScrollView + UITextView + Auto Layout弄脏了我,我成功地获得了一个完全正常工作的UIScrollView。我想分享我的解决方案,万一有人可能会遇到同样的情况。
@property (nonatomic, weak) IBOutlet NSLayoutConstraint *textViewHeightConstraint;
并将其连接到Storyboard self.textViewHeightConstraint.constant = [self.textView sizeThatFits:CGSizeMake(self.textView.frame.size.width, CGFLOAT_MAX)].height;
完成所有这10个步骤之后,您将完全使用UITextView内部的UIScrollView,并感到高兴。
答案 1 :(得分:7)
似乎这个问题有一个适用于许多人的答案。但是,应该注意documentation个州:
在滚动视图中放置文本视图。文本视图处理自己的滚动。您不应该在滚动视图中嵌入文本视图对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆和错误处理。
在尝试将UITextView
放入UIScrollView
之前,您应该考虑这是否真的有必要。如果文本视图是滚动视图中复杂布局的一部分,请注意在接受的答案中使用UIView
容器。
答案 2 :(得分:2)
答案 3 :(得分:1)
我有一个如何计算UITextView动态高度的高度的例子+它在UIScackView里面的UIScrollView里面:https://github.com/fassko/ScrollStackViewExample
答案 4 :(得分:0)
Sodbileg的上述解决方案有效,但是您不需要他的所有步骤。按照他的第7步,使我的scrollview可以在其中滚动以文本视图。在第8步中,我添加了4个约束,但没有添加高度(别忘了底部约束!!)。我没有做剩下的。
我不确定,但是似乎textview的高度会自动调整,而不必我们手动更改。