swift如何在swift中的uiviewcontroller中添加uitableview组

时间:2016-05-10 13:34:25

标签: swift uitableview uiviewcontroller

我想创建一个像设置的界面 Setting 我想我需要使用uitableview。我想在 uiviewcontroller 中使用 uitableview 。但我不知道怎么做......

我试图在uiviewcontroller中添加一个分组的uitableview,但是当我运行应用程序时,uiviewcontroller中没有显示分组的uitableview,我想我还是要做到这一点。

我应该使用哪种类型的uitablview?分组?静电电池?

你能告诉我怎么做吗?谢谢。你有一些教程或开源学习吗?谢谢。

2 个答案:

答案 0 :(得分:0)

对于"组"您可以使用正常的uitableview。你应该将你的tableview分成几部分(在代码中你有一个委托函数,返回部分的数量)

要在UIViewController中使用tableview,您应该从UITableViewDelegate和UITableViewDataSource类实现。然后在你的viewdidload中你可以放置你的tableview.datasource = self和tableview.delegate = self的名字,然后你可以使用UIViewController中tableview的委托函数。

快速google之后,我找到了一个可能对您有用的示例: LINK

答案 1 :(得分:0)

您应该使用添加了部分的UITableView。有一个非常好的教程here

<强>更新

首先,通过拖动到视图控制器上来创建UITableView。添加必要的约束,并生成原型单元格。

enter image description here

将单元格重用标识符设置为单元格。

enter image description here

然后,控制左键单击并将tableView拖动到ViewController(顶部的黄色圆圈)。这样做两次并将其指定为DataSource和Delegate。

打开助手编辑器并控制将tableView拖到类中以创建IBOutlet。然后将UITableViewDelegate添加到您的类声明:

class ViewController: UIViewController, UITableViewDelegate {

完成此操作后,创建两个新的空白Swift文件。文件,新文件。

enter image description here

标题一个文件Section.swift和另一个SectionsData.swift。

在Section.swift文件中,添加此代码。

struct Section 
{
var heading : String
var items : [String]

init(title: String, objects : [String]) {

    heading = title
    items = objects
}
}

在这里,您要定义一个结构,以便以后可以获得数据。

在SectionsData文件中输入以下代码。您可以在此处编辑表格中的内容。

class SectionsData {

func getSectionsFromData() -> [Section] {


    var sectionsArray = [Section]()

    let hello = Section(title: "Hello", objects: ["Create", "This", "To", "The"])
    let world = Section(title: "World", objects: ["Extent", "Needed", "To", "Supply", "Your", "Data"])
    let swift = Section(title: "Swift", objects: ["Swift", "Swift", "Swift", "Swift"])


    sectionsArray.append(hello)
    sectionsArray.append(world)
    sectionsArray.append(swift)

    return sectionsArray
}
}

在此文件中,您创建了一个类,然后创建了一个函数,以便保存和检索数据。

现在,在包含tableview的IBOutlet的文件中,创建跟随变量。

var sections: [Section] = SectionsData().getSectionsFromData()

现在已经完成了艰苦的工作,有时间来填充表格。以下功能允许这样做。

func numberOfSectionsInTableView(tableView: UITableView) -> Int
{
    return sections.count
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
    return sections[section].items.count
}

func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String?
{
    return sections[section].heading
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)

    cell.textLabel?.text = sections[indexPath.section].items[indexPath.row]

    return cell
}

你应该能够运行它并获得你想要的结果。您可以在提供数据时编辑单元格外观。例如,

cell.textLabel?.font = UIFont(name: "Times New Roman", size: 30)

只需确保在更改字体时,字符串名称就是它的拼写方式。

我希望这会有所帮助。