nstableview将行添加为标题并设置连续编号

时间:2017-06-14 09:24:47

标签: arrays macos cocoa swift3 nstableview

我的这个tableview有两列(名字,第二名) 我用数组中的数据填充tableview。 现在我想知道,我可以添加一个“普通”行(人)和像瓷砖一样的行。

例如:

第1行:男性 第2行:Max | Mustermann 第3行:彼得| Düllen

为此我试图像这样填充我的数组:

{
       "to": "example",
       "data": {
           "text":"text",
           "title":"title"
       }
    } 

它有效,但这是设置标题行的正确方法吗?

第二个问题: 每一行应该在另一列中得到一个连续的数字。 此刻我意识到行号。但现在的问题是,标题行不应该是一个连续的数字。

很少的例子(在行尾是我想要实现的数字):

Data(firstName: "male persons", secondName: "", typ: "titel")
Data(firstname: "Max", secondName: "Mustermann", typ: "person")
Data(firstname: "Peter", secondName: "Düllen", typ: "person")

我该如何解决这种情况? 我希望你能理解我的问题。

1 个答案:

答案 0 :(得分:0)

您可以根据需要填充表格视图。您的解决方案将正常工作。只需确保Data不属于您应用的“模型”图层。 (“模型”层不应该知道数据如何显示给用户,因此它不应该知道那些标题行。)

还有其他方法可以做到这一点。例如,您可以拥有一系列部分:

struct Person {
    let firstName: String
    let lastName: String
}

struct Section {
    let title: String
    let people: [Person]
}

let person1 = Person(firstName: "Max", lastName: "Mustermann")
let person2 = Person(firstName: "Peter", lastName: "Düllen")
let section1 = Section(title: "male persons", people: [person1, person2])

let person3 = Person(firstName: "Max", lastName: "Mustermann")
let person4 = Person(firstName: "Peter", lastName: "Düllen")
let section2 = Section(title: "male persons", people: [person3, person4])

var sections = [section1, section2]

// Now implement the table view data source and
// delegate methods to display the sections array.

在此解决方案中,Person可以是应用“模型”图层的一部分。