我目前正在使用swift做一个应用程序并做一个从屏幕右侧滚动并显示可能性列表的菜单栏。
我在故事板上创建了UITableView作为我坚持导航控制器的视图。
我现在想要在此tableview中添加单元格以创建导航栏,但我不知道怎么做,因为没有控制器管理项目 menuView 即可。 这是我的ViewControllerClass:
import CoreData
class ViewController: UIViewController {
@IBOutlet weak var menuView: UITableView!
var menuShowing = false
@IBOutlet weak var leadingConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
menuView.layer.shadowOpacity = 1
menuView.layer.shadowRadius = 6
}
@IBAction func openMenu(_ sender: Any) {
if (menuShowing)
{
leadingConstraint.constant = -200
UIView.animate(withDuration: 0.3, animations: {self.view.layoutIfNeeded()})
} else {
leadingConstraint.constant = 0
UIView.animate(withDuration: 0.3, animations: {self.view.layoutIfNeeded()})
}
menuShowing = !menuShowing
}
}
我的问题是: 我的menuView对象做得好还是我应该重新考虑以前的工作?
我可以使用简单的函数在menuView对象中添加单元格,例如: MenuView.addRow( * something * )?
答案 0 :(得分:1)
您可以设置UITableViewDataSource,如果您想将UITableViewDelegate设置为ViewController,则可以通过ViewController控制tableView。
import CoreData
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var menuView: UITableView!
var menuShowing = false
@IBOutlet weak var leadingConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
menuView.layer.shadowOpacity = 1
menuView.layer.shadowRadius = 6
menuView.dataSource = self
menuView.delegate = self
}
// Handle TableView like you normally do:
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return UITableViewCell()
}
@IBAction func openMenu(_ sender: Any) {
if (menuShowing)
{
leadingConstraint.constant = -200
UIView.animate(withDuration: 0.3, animations: {self.view.layoutIfNeeded()})
} else {
leadingConstraint.constant = 0
UIView.animate(withDuration: 0.3, animations: {self.view.layoutIfNeeded()})
}
menuShowing = !menuShowing
}
}