我在iOS 6.1中有一个简单的(UITableViewStylePlain)UITableView和基本(UITableViewCellStyleDefault)UITableViewCells。当它进入编辑模式时,它的单元格会按照我的要求缩进。但是,只有当所有单元格标签都很短时:如果一个单元格足够长以便在右侧剪切,则表格单元格中的任何一个都不会缩进。
例如:
哪些简单的步骤可以解决这种情况?例如,似乎我无法在Xcode中的基本(即非自定义表格视图)单元格上更改预设尺寸属性。
更新:以下两张图片进一步描述了问题(第一种:正确的情况,第二种:不正确的情况):
更新:事实证明,根本原因不是标签的长度。相反,它似乎是关于我的异步。与此表视图相关的KVO处理。我的tableView:cellForRowAtIndexPath:
在单元的底层托管(Core Data)对象上调用getter。似乎托管对象的默认getter依次调用自己的setter,可能是在实现faulted个对象时。由于我的KVO设置方式,这导致另一个tableView:cellForRowAtIndexPath:
的调用。事情发生时,只有第二个案例涉及KVO通知,随后的递归调用可能会导致问题(在任何情况下似乎都有些奇怪)......
答案 0 :(得分:0)
我已经能够通过在表视图的数据源的构造函数中“预取”底层的托管对象来解决这个问题。我通过访问表格单元格中显示的属性来执行此操作。这样,第一个KVO通知就会在不能导致tableView:cellForRowAtIndexPath:
不必要的递归调用的环境中触发。
如果有更好(更优雅)的方式来处理这种情况,我仍然有兴趣了解它。