UICollectionViewCell里面的UITextView坚持横向增长

Posted

技术标签:

【中文标题】UICollectionViewCell里面的UITextView坚持横向增长【英文标题】:UITextView inside UICollectionViewCell insists on growing horizontally 【发布时间】:2015-06-08 05:09:33 【问题描述】:

我的 UICollectionView 单元格中有一个 UITextView,它会根据其内容不断水平增长。我的集合视图设置为垂直滚动,并且单元格计算自己的大小。我希望我的文本视图根据其内容垂直增长,而不是水平增长。

这是我的单元格、文本视图及其约束:

最初,压缩阻力和拥抱具有默认值,但由于它们不起作用,我将水平拥抱设置为 1000,将水平压缩设置为 250,以防止我的文本视图增长。它似乎也不起作用。

没有任何限制被打破,但是,我经常在日志中收到此消息:

Please check the values return by the delegate.
the behavior of the UICollectionViewFlowLayout is not defined because:
the item width must be less than the width of the UICollectionView minus the section insets left and right values.

我认为这是相关的。如何将我的文本视图保持在定义的范围内并使其垂直而不是水平增长。

更新:它不仅仅是在自己成长。由于限制(并且它没有破坏它们),它正在生长整个细胞。请注意右对齐的时间指示器“2h”在运行时的屏幕截图中超出范围:

【问题讨论】:

是水平增长的文本视图,还是单元格本身?给定特定的单元格宽度,您所拥有的约束不应该让文本视图变得更宽。 你需要改变你的问题。它与您显示的约束无关,它与您调整单元格大小的方式有关。您需要为此显示代码。 【参考方案1】:

我找到了解决方法/解决方案。虽然我仍然不明白为什么具有所需水平拥抱优先级的文本视图是水平增长而不是垂直增长,但我已经以编程方式向我的单元格添加了一个宽度约束,等于屏幕的宽度,并且它起作用了。它强制单元格和文本视图保持在它们指定的宽度,并且任何内容都动态换行。

【讨论】:

以上是关于UICollectionViewCell里面的UITextView坚持横向增长的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionViewCell里面的UITextView坚持横向增长

具有动态高度的 UICollectionViewCell 使用 NSURL 进行图像下载

如何确定何时显示 UICollectionViewCell?

向 UICollectionViewCell 添加圆角和阴影

XCTest 与自定义 UICollectionViewCell

UICollectionViewCell 内的 CALayer 捏