我正在尝试向此自定义标题视图(图像)添加填充。
表格为static content cells
,我只在第一部分添加图片。
我尝试关注this链接,但未成功。
我正在尝试在标题视图中添加一些顶部和底部填充。
我试过这个没有运气:
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if section == 0 {
var header = tableView.tableHeaderView
let image = UIImage(named: "Placeholder") // is 121x121
let imageView = UIImageView(frame: CGRect(x: 0, y: 20, width: tableView.frame.width, height: tableView.sectionHeaderHeight))
imageView.image = image
imageView.contentMode = .scaleAspectFit
header = imageView
return header
}
return nil
}
我还在委托中定义标题高度:
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if section == 0 {
return 125.0
}
return 44.0
}
结果相同,没有填充。
任何帮助将不胜感激
我还尝试将imageView添加到标题子视图中,这会导致整个图像消失。
答案 0 :(得分:3)
不是将UIImageView作为标题返回,而是将其作为子视图添加到UIView中,并在那里创建填充。
你的问题是,即使你设置了标题的框架,UITableView也会调整它的大小以适应它的宽度,以及你设置为125的高度。因此,你必须将它包含在一个将填充的UIView中表的标题,并包含您希望为其填充的UIImageView。
编辑: 试试这个
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if section == 0 {
let header = UIView()
header.backgroundColor = UIColor.clear
let image = UIImage(named: "Placeholder") // is 121x121
let imageView = UIImageView(frame: CGRect(x: 0, y: 20, width: tableView.frame.width, height: tableView.sectionHeaderHeight))
imageView.image = image
imageView.contentMode = .scaleAspectFit
header.addSubview(imageView)
return header
}
return nil
}