【问题标题】:Distinguishing taps on UITableViewCell in general from taps on its accessory button in particular通常将 UITableViewCell 上的点击与附件按钮上的点击区分开来
【发布时间】:2014-06-16 19:19:13
【问题描述】:

我想实现一个UITableViewController,它的工作方式与 iOS 7 中的 Episodes(在 My Podcasts 下)视图类似Podcasts 应用程序,如果我点击单元格的(左侧部分),它的单元格应该执行一个 segue,如果我点击单元格的附件视图,它应该执行另一个 segue。

我的UITableViewController 实现了UITableViewDelegate 中的tableView:didSelectRowAtIndexPath:tableView:accessoryButtonTappedForRowWithIndexPath:,但是只有前一种方法被调用,无论我是点击单元格附件按钮还是单元格内的其他位置。

那么如何进行必要的区分。我认为可以在单元格的contentView 上放置一个UITapGestureRecognizer 并使用它的事件处理程序而不是tableView:didSelectRowAtIndexPath:,但希望也有一个更简单的方案。

【问题讨论】:

标签: objective-c uitableview ios7 uiaccessoryview


【解决方案1】:

我同时找到了似乎是正确答案here

如果附件(在 IB 中设置)是详细信息披露按钮(或详细信息按钮),iOS 将进行区分并调用 tableView:didSelectRowAtIndexPath:tableView:accessoryButtonTappedForRowWithIndexPath:,但如果它是披露指示器则不会。事实上,Apple 的 Podcasts 应用程序在所描述的上下文中使用了详细信息按钮。

这是documentation(旧版本)的相关摘录:

注意细节披露按钮,不像披露 指示器,可以执行与选择分开的操作 行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-02
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    相关资源
    最近更新 更多