内容不适合时的 UIView 多行 [iOS]

UIView multiline when the content doesn't fit [iOS]

我正在使用 Swift 3 和 SnapKit 以编程方式为 AutoLayout 创建所有内容。

我想要一个 View 对象,其中包含 # 个不同大小的视图(包括由于可访问性而没有大小的 UILabel),并且在不适合时具有以下行为。

我想手动执行此操作,但如果我尝试在屏幕上显示视图之前获取子视图的宽度,则结果为 0,直到不存在 (viewDidAppear)。我可以得到父视图的宽度,但是没有子视图的大小重新排列是无关紧要的。

计划将该组件添加到应用程序的不同位置,然后应该几乎独立于 ViewController。

我不明白 Android 中的基本功能如何成为 iOS 中的噩梦。也许我遗漏了什么但是...

谢谢大家。

最后,我解决问题的方法是手动完成。这不是最好的解决方案,但对我的场景来说是最 "clean" 的。 我不想用 UICollectionView 添加更多的复杂层,然后我应该配置、调整和适应屏幕的其他灵活组件,对于一个应该是细节而不是大事的基本组件。

我在计算尺寸时遇到的主要问题是我在小组件内部使用了标签,而这些标签的具体尺寸取决于内容和可访问性。

我的解决方案基本上使用 MyCustomLabel.intrinsicContentSize 来了解未来的大小并进行计算。我覆盖了对象,因为我的标签使用了特殊尺寸。