如何在 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
来完成。
方法如下:
- 使用 xib 文件创建自定义视图,比方说 "TableViewHeader.xib"
- 覆盖 MenuTableViewController 中的
viewForHeaderInSection
。
- 获取对 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
我创建了宽度为 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
来完成。
方法如下:
- 使用 xib 文件创建自定义视图,比方说 "TableViewHeader.xib"
- 覆盖 MenuTableViewController 中的
viewForHeaderInSection
。 - 获取对 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? {}
您可以在此 header 中自定义和添加任何内容。请试着让我知道你的下一期
我在 swift 中添加 table 视图时也遇到了这种问题。所以我遵循这个 link 并且所有细节都清楚。所以按照这个 enter link description here