访问每个 header 和 swift 中的表视图中的控件

Access each header and controls in the tableview in swift

我有一个 UITableView 和自定义 header。在那 header 我有一个带有图像的按钮。

 func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    let cView = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, 40))

    itemNumBtn = UIButton(frame: CGRectMake(0, 0, 70, 42))
    itemNumBtn.setBackgroundImage(UIImage(named: "hide.png"), forState: .Normal)
    cView.addSubview(itemNumBtn)

    return cView
}

我有五个 header 部分。

在单独的函数中如何获取每个按钮的图像,需要访问每个按钮

例如:

fun getHeader() {
    // how to access each header and buttons
    var eachBtn = each button in the header
    var image = all the images of all header section
}

提前致谢

为了从 header 获得 buttonimage,您可以为 header 实施自定义的 UIView,例如

class HeaderView: UIView {
    var button: UIButton
    var image: UIImage

    func init() {
        ...
    }
} 

并且 return 这个 HeaderView 在你的 tableView(tableView: UITableView, viewForHeaderInSection section: Int) 回调中。

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    return HeaderView()
}

然后使用 tableView.headerViewForSection(section:) 获得 5 个自定义 headers 视图。

func getHeaders() {

    for index in 1...5 {
         let header = tableView.headerViewForSection(section: index) as! HeaderView
         let button = header.button
         let image = header.image
    }
}