我想在最后一个表格单元格下面添加一个加号按钮。它应该是这样的:
为了得到这个结果,我使用了这段代码:
let footerView = UIView()
tableView.tableFooterView = footerView
addButton.frame = CGRect(x: 0, y: 0, width: 45, height: 45)
addButton.setTitle("+", for: [])
addButton.titleLabel?.font = UIFont.systemFont(ofSize: 30)
footerView.addSubview(addButton)
addButton.addTarget(self, action: #selector(addSection), for: .touchUpInside)
它看起来完全是我想要的但问题是,由于页脚视图的框架为零,因此内部的加号按钮对触摸事件没有响应。
如果我将框架设置为页脚视图:
let footerView = UIView(frame: CGRect(x: 0, y: 0, width: 45, height: 45))
按钮开始响应触摸,但最后一个单元格的分隔线消失了:
有没有办法将一些交互式内容添加到表格页脚视图但保留最后一个分隔线?
答案 0 :(得分:0)
像这样在footerView
的顶部添加一行。根据您的需要设置x
值。
let line = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: 1))
line.backgroundColor = UIColor.gray
footerView.addSubview(line)
答案 1 :(得分:0)
最可靠的方法是不使用默认的分隔线,而是手动将其添加到单元格中。在返回单元格之前,只需将此代码复制到您的单元格中即可:
var separator:UIView!
if let s = cell.viewWithTag(1000)
{
separator = s
}
else
{
separator = UIView()
separator.tag = 1000
separator.backgroundColor = TheColorYouWantForYourSeparator
separator.translatesAutoresizingMaskIntoConstraints = false
cell.addSubview(separator)
// Swiper constraints
let leadingConstraint = NSLayoutConstraint(item: separator, attribute: .leading, relatedBy: .equal, toItem: cell, attribute: .leading, multiplier: 1, constant: 15)
let heightConstraint = NSLayoutConstraint(item: separator, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 0.5)
let bottomConstraint = NSLayoutConstraint(item: cell, attribute: .bottom, relatedBy: .equal, toItem: separator, attribute: .bottom, multiplier: 1, constant:0)
let trailingConstraint = NSLayoutConstraint(item: cell, attribute: .trailing, relatedBy: .equal, toItem: separator, attribute: .trailing, multiplier: 1, constant: 15)
cell.addConstraints([bottomConstraint, leadingConstraint, heightConstraint, trailingConstraint])
}
这会生成一个可配置的分隔符视图。使用约束来决定它的形状。