如何在 swift 中的侧边菜单 table 中添加视图

How to add view in side menu table in swift

我创建了宽度为 200 的侧边菜单 table,在那里我可以添加标签来显示菜单项,但在这里我必须在 table 中的标签上方添加 uiview in [=31] =].

这是我的代码:

导入 UIKit

class MenuTableViewController: UITableViewController {

var selectedMenuItem : Int = 0

var menuItems = ["Home", "SignIN", "SignUp", "QR Code", "CreateBUsiness", "Services", "Employees", "Settings", "EmployeeTimeoff" ,"Billing", "Raise Request", "MYBusiness"]


override func viewDidLoad() {
    super.viewDidLoad()


    //Customize apperance of table view
    tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
    tableView.separatorStyle = .none
    tableView.backgroundColor = UIColor.blue
    tableView.scrollsToTop = false


    //Preserve selection between presentations
    self.clearsSelectionOnViewWillAppear = false

    tableView.selectRow(at: IndexPath(row: selectedMenuItem, section: 0), animated: false, scrollPosition: .middle)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
    // Return the number of sections.
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // Return the number of rows in the section.
    return menuItems.count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    var cell = tableView.dequeueReusableCell(withIdentifier: "CELL")

    if (cell == nil) {
        cell = UITableViewCell(style: UITableViewCell.CellStyle.default, reuseIdentifier: "CELL")
        cell!.backgroundColor = UIColor.clear

        cell!.textLabel?.textColor = UIColor.white

    }

    cell!.textLabel?.text = menuItems[indexPath.row]//"ViewController #\(indexPath.row+1)"

    return cell!
}

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 50.0
}
}

输出是

但我需要这样:

请帮我解决这个问题。

实现此目的的方法之一是将自定义视图添加到 table 视图 header。

这可以通过覆盖 MenuTableViewController 中的 viewForHeaderInSection 来完成。

方法如下:

  1. 使用 xib 文件创建自定义视图,比方说 "TableViewHeader.xib"
  2. 覆盖 MenuTableViewController 中的 viewForHeaderInSection
  3. 获取对 xib 文件的引用,并在 viewForHeaderInSection 函数中 return 它。

在 MenuTableViewController class 中应该如下所示:

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

    let tableHeaderView = Bundle.main.loadNibNamed("TableViewHeader", owner: self, options: nil)?.first! as! UIView

    return tableHeaderView
}

您可以通过函数 func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {}

为 tableview 添加 header

您可以在此 header 中自定义和添加任何内容。请试着让我知道你的下一期

我在 swift 中添加 table 视图时也遇到了这种问题。所以我遵循这个 link 并且所有细节都清楚。所以按照这个 enter link description here