UITableViewCell 中的自定义附件按钮

Custom Accessory Button in 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")! 来代替,作为测试;如果你崩溃了,那确实是问题所在,然后你可以找出正确的名称是什么。

我在上面 试过,但这会使按钮和图像一样大。

我展示了一个 iOS 内置信息图像,它小于 minimum advised button size of 44x44 points。尽管该按钮有效,但很难(呃)点击;这是许多应用程序(甚至是专业应用程序)中常见的隐形用户体验问题。

因此,您必须将按钮高度(我将整个单元格高度设置为 50)和宽度设置为漂亮且易于点击的 60,而不是调用 button.sizeToFit()