UITableViewCell中的自定义附件按钮

时间:2018-04-20 20:17:54

标签: ios swift uitableview accessoryview

我正在尝试在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
       // ...

但是,我看不到附件视图中显示的按钮。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

我尝试了上面的 @matt's solution,但这会使按钮与图像一样大。

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

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