我正在尝试将视图动态添加到UIStackView中。
我有一个内含全屏UIStackView的XIB。然后我有了一些视图-标签和文本字段/文本视图。
这里的想法是,我有一个管理这些单独视图的类,并且这个类有自己的布局XIB文件。
因此,处理最外层UIStackView的类将从各个类获取布局,并将其作为子视图添加到UIStackView中。
当尝试这样做时,视图看起来被挤压,并且与原始约束不一致。
我可以提供代码,但我会解释限制条件。
外部UIStackView只是拉伸为全屏幕,具有分布填充和等间距。
“内部”视图的一个例子就是标签。我有一个单独的XIB文件,其中包含一个UIView和一个Label。标签固定在UIView的中心。
我认为问题出在将自定义XIB添加到现有UIStackView中。我不确定我还需要提供多少信息,但我怀疑我遗漏了一些东西,有人可能会立即从提供的信息中发现。
任何帮助都是非常感谢的。谢谢。
发布于 2018-07-20 19:41:55
UIStackView完全按照您的要求进行操作。如果设置了约束,以便UIStackView填充整个屏幕,那么您需要提供内容,当它在屏幕上平均划分时,具有预期的布局,插入的每个视图的大小将调整为相同的大小。
如果您不知道将使用多少个视图,但需要每个视图在屏幕上采用其各自的纵横比,那么您可以使用“按比例填充”选项。UIStackView会将每个视图的高度相加,然后划分它自己的高度,并将其按比例分配给每个视图。如果你添加了太多的视图,这也会开始挤压你的视图。
为了避免这类问题,您可能希望将UIStackView放在UIScrollView中。然后设置一个具有非常低优先级的约束,将UIStackView高度设置为0,当您插入视图时,UIStackView将自动调整大小以适应不同的视图。
祝好运!
https://stackoverflow.com/questions/51441612
复制相似问题