带有长标签的UITableViewCells在编辑模式下不会缩进

时间:2013-03-07 10:56:28

标签: ios uitableview ios6

我在iOS 6.1中有一个简单的(UITableViewStylePlain)UITableView和基本(UITableViewCellStyleDefault)UITableViewCells。当它进入编辑模式时,它的单元格会按照我的要求缩进。但是,只有当所有单元格标签都很短时:如果一个单元格足够长以便在右侧剪切,则表格单元格中的任何一个都不会缩进。

例如:

  1. 包含一个单元格的表格:(简短)=>缩进即工作
  2. 包含两个单元格的表格:( LONG)(SHORT)=>既不是单元格缩进,也不起作用
  3. 哪些简单的步骤可以解决这种情况?例如,似乎我无法在Xcode中的基本(即非自定义表格视图)单元格上更改预设尺寸属性。

    更新:以下两张图片进一步描述了问题(第一种:正确的情况,第二种:不正确的情况):

    enter image description here enter image description here

    更新:事实证明,根本原因不是标签的长度。相反,它似乎是关于我的异步。与此表视图相关的KVO处理。我的tableView:cellForRowAtIndexPath:在单元的底层托管(Core Data)对象上调用getter。似乎托管对象的默认getter依次调用自己的setter,可能是在实现faulted个对象时。由于我的KVO设置方式,这导致另一个tableView:cellForRowAtIndexPath:的调用。事情发生时,只有第二个案例涉及KVO通知,随后的递归调用可能会导致问题(在任何情况下似乎都有些奇怪)......

1 个答案:

答案 0 :(得分:0)

我已经能够通过在表视图的数据源的构造函数中“预取”底层的托管对象来解决这个问题。我通过访问表格单元格中显示的属性来执行此操作。这样,第一个KVO通知就会在不能导致tableView:cellForRowAtIndexPath:不必要的递归调用的环境中触发。

如果有更好(更优雅)的方式来处理这种情况,我仍然有兴趣了解它。

相关问题