快速在表格视图中插入单元格

Posted

技术标签:

【中文标题】快速在表格视图中插入单元格【英文标题】:Insert cell in tableview in swift 【发布时间】:2017-06-07 15:51:49 【问题描述】:

我目前正在快速开发一个应用程序,并制作一个从屏幕右侧滚动并显示可能性列表的菜单栏。

我在我的故事板上创建了 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 *)?

【问题讨论】:

【参考方案1】:

你可以设置 UITableViewDataSource 和如果你想 UITableViewDelegate 到 ViewController 使 tableView 被 ViewController 控制。

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
 
   

【讨论】:

以上是关于快速在表格视图中插入单元格的主要内容,如果未能解决你的问题,请参考以下文章

表格视图中单元格之间的快速距离[关闭]

如何在表格视图单元格中快速迭代for循环

如何根据标签文本快速更改表格视图单元格高度?

除非快速选择所有单元格,否则限制表格视图

在不同的表格视图单元格布局之间快速切换

如何快速订购两个动态表格视图单元格?