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