Я не могу понять, что не так в этом коде. я хочу отображать кнопку и изображение в заголовке раздела tableview
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView()
let image = UIImageView()
image.frame = CGRect(x: view.frame.width - 10 , y: 0, width: 20, height: 20)
image.image = UIImage.init(named: "triangle.png")
let button = UIButton(type: .system)
button.frame = CGRect(x: view.frame.origin.x, y: view.frame.origin.y, width: view.frame.width - 30, height: view.frame.height)
button.setTitle("Open", for: .normal)
button.backgroundColor = .yellow
button.addTarget(self, action: #selector(buttonclick), for: .touchUpInside)
view.addSubview(image)
view.addSubview(button)
return view
}
Что вы возвращаете в heightForHeaderInSection?
@RajeshKumarR я возвращаю 50 в heightForHeaderInSection
указать высоту заголовка в разделе





Вы не должны устанавливать imageView и кнопку покадрово за рамкой просмотра. Потому что, когда вызывается функция viewForHeaderInSection, рамка просмотра будет равна 0.
Вместо view можно использовать tableview
image.frame = CGRect(x: tableView.frame.width - 20 , y: 0, width: 20, height: 20)
button.frame = CGRect(x: 0, y: 0, width: tableView.frame.width - 30, height: 50)
Рекомендуется использовать автолайп вместо установки рамки.
Добавьте ниже код сразу после инициализации view:
view.frame = CGRect(x: 0 , y: 0, width: tableView.frame.width, height: heightForHeaderInSection)
вы забыли установить рамку вида.
Вы забыли установить рамку просмотра