不同高度的UITableViewCells将其配件放置在不同的X位置

时间:2010-03-26 19:47:33

标签: iphone uikit uitableview

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

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

我在界面构建器中设置了一个视图,只是将一个视图表单元格添加到视图中,将它们的高度设置为不同的值,然后为每个单元添加一个详细的公开按钮。没什么,没什么。

这就是我所看到的:

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

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

高度是:

  • top 37px
  • mid 68px
  • 底部44px(默认,未触动的高度)

如果我增加高于68px的高度,附件视图不会向左移动。

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

这是重现的测试项目。

TableViewCellHeightsTest.zip

3 个答案:

答案 0 :(得分:2)

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

alt text http://i44.tinypic.com/35hjq5y.png

答案 1 :(得分:2)

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

enter image description here

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

我正面临着这个问题,有两位同事帮我找出原因。

我们发现当使用默认的UITableViewCell(在我的情况下,风格UITableViewCellStyleDefault虽然我相信它适用于所有其他风格),如果您的配件视图的高度高于幻数16.0,附件视图的x位置开始与单元高度的方差不同。

enter image description here

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

我的同事实施了自定义UITableViewCell并使用子视图来布局内容,并且能够避免此问题。

所以你有3个选择:

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

enter image description here

图3(默认配件类型UITableViewCellAccessoryDetailDisclosureButton

答案 2 :(得分:1)

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