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