问题标签 [uitableviewautomaticdimension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9409 浏览

objective-c - iOS:UITableViewCell 的动态高度

我正在使用 iOS9 XCode7 我需要根据 labelText Height 动态更改单元格的高度

我用过:

但它不适用于定制电池。 sizetoFit在 iOS9 中被删除。

请提出一些建议。谢谢

0 投票
1 回答
4260 浏览

ios - UITableViewCell 自动行高在异步调用后不起作用

我已成功使我的自定义 uitableviewcell 与自动尺寸一起使用。在我的自定义单元格中,我有一个标签(用于显示标题,可以是一行或多行)和一个图像视图。自动布局设置正确,我指定了估计的行高并将行高设置为自动尺寸。当我使用在 viewDidLoad 中设置的虚拟数据时,我的自定义单元格会根据 UILabel 文本动态更改高度。

但是,我必须在我的自定义 tableviewcell 类中进行 API 调用,即在 cellForRowAtIndexPath 方法中获取相应的数据以显示在我的 UILabel 和 UIImageView 中。成功获取数据后,我更新了 UI 元素。但是,在这种情况下,单元格不会动态更改高度,并且我的 UILabel 被截断为一行。

我试过调用 reloadRowsAtIndexPath 方法,但是当我滚动 tableview 时它会导致奇怪的反弹。我已经尝试了几个小时,知道如何在从 API 调用获取数据后使自动 tableview 行高工作吗?

0 投票
0 回答
655 浏览

ios - 启用 UITableViewAutomaticDimension 的 UITableView 单元格中的自定义 UIView

我有UITableViewUITableViewAutomaticDimension一些estimatedRowHeight。对于这个表,我使用了 custom UITableViewCell,其中包含一些 label 和 customUIView并覆盖了intrinsicContentSize()。约束设置正确,表格能够确定每行的实际高度。到目前为止,一切都很好。

现在我开始修改我的自定义视图的内部逻辑,以根据可用宽度调整它的外观,即当表格单元格大小不够宽时,我的视图可以重新排列子视图以适应新的限制,这会对结果高度产生影响,所以我有类似的代码那:

现在,当我填充表格视图时,intrinsicContentSize()返回一些所需的值,但它不适合当前布局,然后控制转到layoutSubviews()重新计算大小并再次调用系统的位置intrinsicContentSize(),现在它返回了良好的值。但是,第一个时间表会加载基于错误intrinsicContentSize()值计算的数据和像元高度。如果我reloadData()再次调用一切都会变得很好,并且表格中所有即将出现的单元格的布局也可以。

我的错误在哪里以及如何修改代码以使单元格大小正常工作而无需调用reloadData()两次?

0 投票
1 回答
529 浏览

ios - AutoLayout 的 systemLayoutSizeFittingSize 只适用于 UILabel?

我只需要使用该方法制作一个具有自动高度计算的 UITableViewCell systemLayoutSizeFittingSize:UILayoutFittingCompressedSize。在我的视图有 UILabels 和 UIImageViews 之前,一切都很好。当我需要用 UIButton 替换其中一个标签时,该方法没有正确计算大小。

除了 UILabel 之外,我们是否需要向 UIElements 提供一些额外的信息才能正常工作?

最后,我不得不将 TapGestures 添加到 UILabels 以使其工作。

这是单元格视图:

在此处输入图像描述

时间“09:00 AM”和位置是这里的标签,如果方法正确给出结果,这些可能是按钮。

这个想法很简单,创建一个屏幕尺寸尽可能小的单元 xib(iPhone 3.5 英寸)。在您的类中单独创建一个 xib 实例,为该实例提供信息(时间、位置等)并运行 systemLayoutSizeFittingSize:UILayoutFittingCompressedSize 方法来计算大小。

0 投票
1 回答
4149 浏览

ios - Swift - 如何动态固定 UITableViewHeaderFooterView 高度大小?

我刚刚尝试了下面的代码行,但我无法正常工作。我想知道如何以编程方式为页眉或页脚提供这种情况,可能正在使用自动布局,我不知道究竟是哪一个解决了我的问题。我正在使用 UITableViewHeaderFooterView 的 xib 文件。

如果有人解释我会很棒。

0 投票
2 回答
3427 浏览

ios - UITableView 动态单元格高度冲突 - 高度不取决于标签

所以,我的表格视图显示图像。每个单元格基本上是一个填充整个单元格的图像contentView。由于图像具有不同的纵横比,我需要我的单元格根据表格视图的宽度和图像的纵横比调整它们的高度。我遵循了这个 Ray Wenderlich教程,但现在遇到了约束冲突。通过改变imageViews 高度约束来调整图像大小,例如myImageViewHeight.constant = tableView.frame.width / aspectRatio

图像视图具有以下约束,并将单元格contentView作为超级视图。

约束

在表视图控制器类中,我正在使用

我也试过这个 - 同样的结果。

我猜我必须摆脱'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x7fbcdaf52230(100)]>"但如何?此外,是否有人知道有关如何正确创建具有动态内容的表格视图的某种文档/教程,这些内容不仅涵盖单元格内的一堆标签?如果图像视图被标签替换, 我的代码就可以正常工作......

0 投票
2 回答
76 浏览

ios - 如何获取放置在 Cell 中另一个 UITableView 中的 UITableView 的高度作为 childViewController

我正在努力解决有线问题。我有UITableView一个细胞。此单元格仅使用childViewController(second tableView) 保存 containerView。我的问题是,第一个 tableView(parent) 必须具有UITableViewAutomaticDimension行高,但它不起作用(它不知道第二个单元格的正确大小tableView)。如何获得正确的秒数tableView)?

在此处输入图像描述

第二个 tableView ( inside Cell) 关闭了 scrollingEnabled ( tableView.scrollEnabled = false),第一个 tableView 必须具有正确的第二个 tableView 大小才能提供正确的滚动体验。

0 投票
2 回答
131 浏览

ios - 具有复杂结构和 UITableViewAutomaticDimension 的 Table View 单元格高度

如何创建包含大量子视图的复杂结构的自动表格视图单元格大小?

这是表格视图单元格的示例:表格视图单元格示例

例如,表格视图单元格的总高度为 220 像素:棕色区域 - 70 像素,绿色区域 90 像素,红色 - 10 像素和黑色 - 50 像素。蓝色区域始终与 tableview 单元格高度相同。

如何通过删除/隐藏/任何整个绿色区域来使用 autolayout 和 UITableViewAutomaticDimension 将 tableview 单元格高度降低为 130px?

是否可以使用 UITableViewAutomaticDimension 和正确的约束来实现它,而无需任何旧式方法?

注意:最低版本是 iOS 8(但 iOS 9+ 解决方案也可以,我会增加最低版本...)

0 投票
1 回答
761 浏览

ios - 当基类实现 tableView:heightForRowAtIndexPath: 时如何使用 UITableViewAutomaticDimension:

我有大约 30 个视图控制器,它们都有一个实现“heighForRowAtIndexPath”的通用基类。现在我们最近删除了 iOS 7 支持,这让我们可以使用 AutoLayout 进行漂亮的自动高度计算。我刚刚看到一个相当复杂的单元格,它非常适合这个自动高度。

文档说明了这一点:

如果委托未实现 tableView:heightForRowAtIndexPath: 方法,您可以设置单元格的行高。rowHeight 的默认值为 UITableViewAutomaticDimension。

所以似乎因为我的基类实现了 heightFor.. 自动没有生效。

有没有办法解决?我会以某种方式需要“实施”该特定方法。

0 投票
1 回答
8094 浏览

swift - UITableViewAutomaticDimension 不适用于调整单元格高度

只要我不尝试启用自动调整大小,我的单元格就可以正常显示。当我在 viewController 中添加两行用于自动调整大小时,个人资料图片、用户名和日期下的所有内容都会消失(当您单击图片时,该单元格应该看起来像 Instagram 所做的那样)。

如果我注释掉,tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 450那么单元格会完全按照预期显示,但它显然不会调整大小。

这是我目前拥有的代码: 在我的 tableViewController 中:

在我的 cellViewController

} }

在此处输入图像描述 在此处输入图像描述