如何使用 UITableViewCell 的附件按钮作为 Popover 的锚点

Posted

技术标签:

【中文标题】如何使用 UITableViewCell 的附件按钮作为 Popover 的锚点【英文标题】:How to use UITableViewCell's accessoryButton as anchor for a Popover 【发布时间】:2017-12-25 11:49:15 【问题描述】:

我尝试使用 UITableViewCell 的 accessoryButton 作为 Popover 的锚点,但无法使用情节提要连接它。以编程方式我尝试使用accessoryButtonTappedForRowWith 函数,这也不起作用。我怎样才能连接它?

【问题讨论】:

【参考方案1】:

如果您的类是UITableViewController 的子类,则使用:

override func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) 
    print(indexPath.row)

查看示例代码:

class ViewController: UITableViewController 

    override func viewDidLoad() 
        super.viewDidLoad()

    

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        cell.textLabel?.text = "\(indexPath.row)"

        cell.accessoryType = UITableViewCellAccessoryType.detailButton
        return cell
    

    override func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) 
        print(indexPath.row)
    

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        return 10
    

如果它是UIViewController 的子类,那么您不需要在该方法之前使用override,所以它将是:

func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) 
    print(indexPath.row)

在这种情况下,不要忘记将表格视图的UITableViewDataSourceUITableViewDelegateViewController 连接起来。

【讨论】:

链接失效

以上是关于如何使用 UITableViewCell 的附件按钮作为 Popover 的锚点的主要内容,如果未能解决你的问题,请参考以下文章

我如何强制 UITableViewCell 保留其附件

如何使用UITableViewCell附件Button作为Popover的锚点

当附件是UITableViewCellAccessoryCheckmark时,如何将文本置于UITableViewCell中

如何显示 UITableViewCell 附件复选标记

如何在 Swift 3 中保存 UITableViewCell 附件复选标记的状态

iOS:如何将 UITableViewCell 附件按钮向左移动