iPhone:iOS 6 和 5.1 之间 cellForRowAtIndexPath 行为的令人费解的差异

Posted

技术标签:

【中文标题】iPhone:iOS 6 和 5.1 之间 cellForRowAtIndexPath 行为的令人费解的差异【英文标题】:iPhone: Puzzling difference in cellForRowAtIndexPath behaviour between iOS 6 and 5.1 【发布时间】:2012-11-13 19:56:44 【问题描述】:

我希望 UITableView 中的所有单元格始终显示删除附件和披露指示符:

(原因是我没有/不想要编辑按钮)

这在 5.1 中使用此代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath   *)indexPath

  //the usual code
      [self.tableView setEditing:YES animated:YES];
      cell.editingAccessoryType = UITableViewCellAccessoryDisclosureIndicator;

      return cell;

这不会在 ios 6.0 中产生相同的行为。当我添加一行时,它没有删除附件。有趣的是,如果我然后选择单元格(运行 didSelectRowAtIndexPath),我可以在我的详细信息视图中按取消,然后删除附件才会出现在我的表格单元格中。

谁能解释这种差异?我在 Apple 的文档中找不到任何关于此的内容(如果您能指出一些事情,我将不胜感激)。也许我不应该把代码放在这个方法中?谢谢。

【问题讨论】:

为什么要将cellForRowAtIndexPath: 中的表格置于编辑模式?您应该在viewDidLoad 中执行一次。 @rmaddy 这解决了,非常感谢。我想我愚蠢地遵循了一个糟糕的教程。如果您将评论放入答案中,我会接受。 【参考方案1】:

您的问题是由在 cellForRowAtIndexPath: 中的表格视图上调用 setEditing:animated: 引起的。您应该只在 viewDidLoad 中调用一次。

【讨论】:

以上是关于iPhone:iOS 6 和 5.1 之间 cellForRowAtIndexPath 行为的令人费解的差异的主要内容,如果未能解决你的问题,请参考以下文章

CLLocation 区域监控在 iOS 5.1 和 iOS 6 中的行为不同

如何在 xcode 4.6.2 中使用 iphone 模拟器 5.1

ipad ios 5.1 中的界面方向问题

Xcode 5.1 无法使用 Ios 7.1.1 连接到我的 Iphone 5S

iPhone 6 Plus 和所有其他小屏幕之间的不同 UITableViewCell / UICollectionViewCell 指标

在 xcode 5 中部署目标 5.1 时如何使用自动布局