不同高度的 UITableViewCells 将其附件视图放置在不同的 X 位置

Posted

技术标签:

【中文标题】不同高度的 UITableViewCells 将其附件视图放置在不同的 X 位置【英文标题】:UITableViewCells of different heights place their accessoryViews at different X positions 【发布时间】:2010-03-26 19:47:32 【问题描述】:

我的应用有一些高度不同的表格单元格。单元格还可以将UIButton 设置为详细信息披露按钮(圆形,蓝色,带箭头)作为辅助视图。

根据单元格的高度,附件视图的位置会有所不同。起初我认为是我的单元格的布局代码导致了问题,所以我设置了一个快速的独立测试,使用 vanilla UITableCells 来消除它可能是我的错的可能性。

我在界面生成器中设置了一个视图,只是在视图中添加了一个视图表单元格,将它们的高度设置为不同的值,然后为每个单元格添加一个详细信息披露按钮。不多也不少。

这是我看到的:

UITableViewCells with different x values http://jasarien.com/jing/accessoryView_x_difference.png

我添加了尺寸指南(感谢Xscope),因此您可以看到附件视图 x 位置的差异。

高度是:

前 37 像素 中 68 像素 底部 44 像素(默认,未触及高度)

如果我将高度增加到 68 像素以上,附件视图不会再向左移动。

这是一个错误吗?有什么办法可以防止这种情况发生吗?

这是要重现的测试项目。

TableViewCellHeightsTest.zip

【问题讨论】:

我无法在 iPhone SDK 3.0 中重现这一点。在这里工作正常。能否上传独立的测试项目,让我下载测试一下? 我在问题中添加了一个链接。 【参考方案1】:

我在下载您的文件时遇到了同样的问题。与其手动设置详细信息披露按钮并将它们分配给作为插座的单元格,不如删除所有披露指标并尝试以这种方式设置它们:

【讨论】:

是的,我确实注意到,在您说您没有看到问题之后。但是,在我的代码中,公开按钮是以编程方式创建的,并设置为单元格的附件视图,所以我试图在界面生成器中复制它。我想我忽略了将单元格的附件类型设置为详细信息披露然后设置它的操作的简单性...... 这是一个非常令人头疼的问题。我有同样的问题,以编程方式设置我所有的单元格代码,并根据单元格高度为指标获取不同的位置。【参考方案2】:

注意:为了便于查看,我将内容视图的背景颜色设置为蓝色。

图1(附件视图高度为17.0)

我正面临这个问题,并且有 2 位同事帮我找出原因。

我们发现,当使用默认的UITableViewCell(在我的例子中,样式为UITableViewCellStyleDefault,尽管我相信它适用于所有其他样式)时,如果您的辅助视图的高度高于幻数 16.0,x附件视图的位置开始随着单元格高度的变化而不同。

图2(附件视图高度为16.0)

我的同事已经实现了自定义UITableViewCell 并使用子视图来布局内容并且能够避免这个问题。

所以你有 3 个选择:

将附件视图的高度限制为 16.0 及以下。 使用自定义UITableViewCell 并将您自己的内容布局为子视图。 使用默认配件类型。

图3(默认附件类型UITableViewCellAccessoryDetailDisclosureButton

【讨论】:

【参考方案3】:

我遇到了同样的问题,并通过使自定义附件视图与单元格相同的高度来解决它。

【讨论】:

轻松最佳答案!谢谢!

以上是关于不同高度的 UITableViewCells 将其附件视图放置在不同的 X 位置的主要内容,如果未能解决你的问题,请参考以下文章

动态 UITableView 高度与 UIScrollView 中的动态 UITableViewCells

在 UITableViewCells 中显示之前调整图像大小和裁剪图像

我的 XIB 中的两个 UITableViewCells for iPad/iPhone

动态调整 UITableViewCells 的大小

如何在 uitableviewcell 中设置 uicollectionview 的高度?

如何在给定不同排序参数的情况下自动重绘 UITableViewCells