在TableView Section标头中添加UIButton和UIImage

时间:2018-07-18 04:51:08

标签: ios swift uitableview

我无法弄清楚这段代码有什么问题。我想在表格视图节标题中显示按钮和图像

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
    }

2 个答案:

答案 0 :(得分:0)

您不应逐帧设置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)

建议使用自动布局而不是设置框架。

答案 1 :(得分:0)

在初始化view之后添加以下代码:

view.frame = CGRect(x: 0 , y: 0, width: tableView.frame.width, height: heightForHeaderInSection)

您忘记设置视图的框架。