【问题标题】:cell.accessoryType disappearing issuecell.accessoryType 消失问题
【发布时间】:2009-07-13 15:30:58
【问题描述】:

我已经从代码中设置了自定义 UITableViewCell。在我的单元格中,我有一个“UITableViewCellAccessoryDisclosureIndicator”。突出显示单元格时,它变为蓝色,而附件变为白色。所以这一切都很好。

但是,当点击并推送新视图时,附件项目会消失。当我回到 tableview 时, UITableViewCellAccessoryDisclosureIndicator 消失了,在同一个单元格上点击/按住手指不会再次突出显示它。

上周运行良好,但我无法弄清楚是什么突然引发了这个问题。当我做一个'hg diff'时我什么都看不到,所以希望有人能指导我找到一个可能的解决方案。如果您需要具体的代码,请告诉我。

我使用了 atebits 快速滚动示例代码并对其进行了大量自定义,但基本(和突出显示的 BOOL)保持不变。

PS。在我的代码中,我还注意到 UITableViewCell 在推送新视图时不会保持突出显示。我注意到Apple自己的示例代码,当新视图被推送时,单元格被突出显示,回到表格视图,单元格保持突出显示,直到表格视图被推回原位。这里有什么想法吗?谢谢。

【问题讨论】:

    标签: iphone uitableview


    【解决方案1】:

    我刚刚自己解决了这个问题(这个上午)

    为了争论,尝试从您的单元格中删除 LayoutSubviews 方法。我发现这会对附件视图造成严重破坏。我最终从我的单元格中删除了该方法,并将元素定位在初始化方法中。

    【讨论】:

      【解决方案2】:

      我不确定您所指的快速滚动代码是什么,但表格视图单元格应通过视图控制器的推送和弹出保持突出显示,仅在弹出下一个控制器后立即取消选择。换句话说,事件的顺序应该是:

      1. 在表格视图单元格上接收触摸事件
      2. 单元格选择(突出显示蓝色)
      3. 推送新控制器
      4. 对新控制器的任何操作
      5. 弹出新控制器
      6. 单元格取消选择(从蓝色变为白色)

      如果您没有发生这种情况,您可能正在调用 UITableView 方法deselectRowAtIndexPath:animated: - 这是负责以编程方式取消选择表格视图中的单元格的方法。确保您的代码中没有对该方法的任何额外调用。

      关于丢失 dislousre 指示器,请确保您的表视图的数据源在视图控制器的推送或弹出期间没有改变。如果数据源更改为在其生成的单元格中不包含 UITableViewCellAccessoryDisclosureIndicator 的另一个对象,则当您通过推送/弹出视图刷新表格时,即使该单元格突出显示,您也不会看到它。 (显示表格可能对诊断有益,稍等片刻,然后致电[tableView reloadData] 并查看您的附件指示灯是否消失。)

      【讨论】:

      • 我添加了: - (void)viewWillAppear:(BOOL)animated { NSIndexPath *selectedRowIndexPath = [self.tableView indexPathForSelectedRow]; if (selectedRowIndexPath != nil) { [self.tableView deselectRowAtIndexPath:selectedRowIndexPath animated:YES]; } } 现在 DisclosureIndicator 有点好。它在取消选择单元格或推送 tableview 时返回。但是,当新视图被推送时,该行仍然被取消选择。我想获得“访问了哪个单元格”的效果,因此单元格保持突出显示。此外,当视图被推送时,显示项在动画期间仍然消失:(
      • 我不确定您是否真的应该添加对 deselectRowAtIndexPath:animated: 的调用,而是希望删除它们 - 您是否已经在任何地方调用了此方法?如果没有,我们能否从您的应用中看到一些相关代码(例如您对 tableView:didSelectRowAtIndexPath: 和其他导航相关委托方法的实现)?
      【解决方案3】:

      如果您覆盖“layoutSubviews”,您需要调用

      [super layoutSubviews];
      

      在您的自定义布局之前。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-07
        • 1970-01-01
        • 1970-01-01
        • 2015-02-10
        • 2012-04-25
        • 1970-01-01
        相关资源
        最近更新 更多