我有一个包含多个单元格的表格视图。每张图片的中间都包含一张图片和一个标签。当用户按下某个单元格时,我希望它变暗一些,以便用户知道他们正在按下该单元格。
答案 0 :(得分:1)
请在imageview上方单击与单元格大小相同的按钮。只需拖动出口并对其进行操作即可。使用此按钮上的代码来管理选择和取消选择。
选择:
sender.backgroundColor = UIColor.black.withAlphaComponent(0.35)
取消选择:
sender.backgroundColor = UIColor.black.withAlphaComponent(0.0)
快乐编码
答案 1 :(得分:0)
如果要使单元格稍微变暗并突出显示,请检查UITaleView
中称为isUserInteractionEnabled
的属性。
UITableViewCell
中已经默认实现了此行为,但是,如果不是您想要的,则可以实现didSelectRowAt
委托函数并在该单元格上执行任何操作,或者使用didHighlightRowAt
。
您可以在线阅读大量有关这些功能的信息here是有关实现didSelectRowAt
的示例。
更新:一些解决方法可以在didSelectRowAt
方法添加工具中手动向用户显示他单击的内容。
let cell = (tableView.cellForItem(at: indexPath) as! MyCustomCell)
UIView.animate(withDuration: 0.4) {
cell.imageView.highlightedImage = cell.imageView.image?.withRenderingMode(.alwaysTemplate)
cell.imageView.tintColor = UIColor(displayP3Red: 0, green: 0, blue: 0, alpha: 0.3)
UIView.animate(withDuration: 0.4, animations: {
talbeView.deselectItem(at: indexPath, animated: true)
})
}
这将使用您在这种情况下设置的淡色为黑色且透明度为0.3
来手动覆盖图像视图内的图像。
然后取消选择该单元格,所有这些都将在0.4
动画时间内完成。