UITableViewCell 内的 UIStackView 未按预期运行

Posted

技术标签:

【中文标题】UITableViewCell 内的 UIStackView 未按预期运行【英文标题】:UIStackView inside UITableViewCell is not acting as expected 【发布时间】:2017-01-10 20:04:36 【问题描述】:

我在带有 3 个子视图的 UITableViewCell 中放置了一个 UIStackView,并选择它来平均填充。

由于它在 iPhone 7 预览版上看起来不错,因此对于较小的屏幕,自动布局约束似乎已被打破。堆栈视图的宽度大于屏幕宽度。

我错过了什么?

【问题讨论】:

【参考方案1】:

尝试在您的cellForRowAt 方法中对每个单元格的堆栈视图运行stackview.layoutIfNeeded()。您是否还向要添加到堆栈视图的视图添加任何约束?如果您通过代码执行此操作,您可以说 newView.widthAnchor.constraint(equalToConstant: (UIScreen.main.bounds.width / 3)).isActive = true 以确保其大小正确(假设您不希望它们之间有任何空间)。

【讨论】:

我在表格视图单元格中有堆栈视图,我正在以编程方式添加视图,但问题是它如何添加多个视图。我需要根据条件以编程方式添加不同的视图。有什么解决办法吗? 我在表格视图单元格中有堆栈视图,我正在以编程方式将视图添加到堆栈视图,但问题是它如何添加多个视图。我需要根据条件以编程方式添加不同的视图。有什么解决办法吗?如果我将 1 个视图添加到 1 个单元格的堆栈中,并将 2 个视图添加到另一个单元格堆栈中,则它会添加随机视图。我什至在添加新的但无法正常工作之前删除了 cellforrowatindex 中的所有子视图。【参考方案2】:

您的问题显然不在 uistackview 约束中,而是在它自己的表中。

请为表格视图添加前导和尾随约束,它将正常工作。

【讨论】:

以上是关于UITableViewCell 内的 UIStackView 未按预期运行的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 内的 UIView 上的 UIGestureRecognizer

UITableViewCell 内的 UIStackView

如何增加 UItableviewcell 内的 UItableview 高度?

捏放大到 UITableViewCell 内的 UIImageView

iOS - UITableViewCell 内的 UIScrollView 内的 UIView 未触发 UITapGestureRecognizer

UITableViewCell 内的 TableView - 必须注册一个 nib 或类