UITableViewCell 中的自定义附件按钮



我正在尝试在 UITableViewCell 的附件视图中添加一个自定义按钮。

我添加了以下代码:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {      
       // ....     
       let button = UIButton(type: .custom)
       button.setImage(UIImage(named: "arrow-right-light.png")?.maskWithColor(color: .white), for: .normal)
       button.addTarget(self, action: #selector(buttonTest), for: .touchUpInside)
       button.tag = indexPath.row
       cell.accessoryView = button
       // ...

但是,我没有看到该按钮显示在附件视图中。

我可以想到两个可能的原因:

  • 问题可能是按钮没有大小,因此它是不可见的。设置图像,添加此行:

    button.sizeToFit()
    
  • 另一种可能性是你没有名为 "arrow-right-light.png" 的图像。这不会使现有代码崩溃,但它会阻止按钮具有任何图像,因此您看不到它。试着说UIImage(named: "arrow-right-light.png")!,只是作为一种测试;如果你崩溃了,那确实是问题所在,然后你可以弄清楚正确的名称是什么。

我尝试了上面的@matt解决方案,但这会使按钮与图像一样大。

我展示了一个iOS内置信息图像,它小于建议的最小按钮大小44x44点。 虽然按钮有效,但很难点击;这是许多应用程序(甚至是专业应用程序(中常见的不可见用户体验问题。

因此,与其

调用button.sizeToFit(),不如将按钮高度(我的完整单元格高度设置为 50(和宽度设置为漂亮且易于点击的 60。

最新更新