具有自定义披露的UITableViewCell会导致错位?

时间:2010-11-10 14:57:37

标签: iphone cocoa-touch uitableview

我希望读到这篇文章的人能够对这个问题有所了解。

我有一个包含自定义UITableViewCells的普通UITableView,每个单元格都是由tableView提供的不同高度:heightForRowAtIndexPath:并且表格不会滚动。细胞本身就是一个或两个UILabel的容器,没什么特别的。除了没有任何披露用于其他任何内容之外,其中三个单元格在编辑时显示自定义披露。自定义披露是UIImageView分配给细胞editingAccessoryView的28x29图像,但UIImageView大小设置为40x29,以使用contentMode Left提供更好的位置。

这应该可以正常工作,但是当披露出现在编辑模式时,它们不会共享相同的位置 - 两个可能是相同的x,第三个可能是5px不同。这似乎取决于给予每个细胞的高度,它们基本上是四处移动。我无法看到它们是如何相关联的,但已经找到了一组高度,使得所有三个的预期结果处于相同的位置。这不是理想的,但到目前为止一直很好 - 我别无选择,只能改变高度,因此对齐是一个大问题。

如果我删除了自定义披露,那么标准披露是否完美无缺?

我尝试了很多东西,即

  • 删除UIImageView上的额外宽度
  • 缩小图像尺寸
  • 玩细胞高度 - 披露只是四处移动
  • 用其他控件替换UIImageView - 没有区别

如果您有任何想法,为什么这可能是我喜欢在这里,谢谢。

1 个答案:

答案 0 :(得分:0)

我的猜测是因为您正在使用UIImageView中的内容模式。使用内容模式中心。

当高度改变时,视图会在所有方向上拉伸,但图像会保留在视图的左边缘...