2016-08-25 139 views
0

我有一個包含學生列表的tableview。每個單元格包含學生的名字和副標題。我設法通過創建一個常量並返回這些數據來將兩個元素添加到我的字幕中。Swift - 將兩個數組元素添加到tableView中的detailTextLabel中

我試圖顯示此:

(爲textLabel)第一個學生

(字幕)小學

我目前使用的這一段代碼,第5級

let subTitle = "\(student.level)\(", ")\(student.grade)" cell!.detailTextLabel?.text = subTitle 

是明智的 像這樣做?它正在工作,但我不確定這是否是最好的方法。

我的代碼的擴展版本:

studentArray = [ 
     Student(level: "Elementary", grade: "5th grade", name: "First student"), 
     Student(level: "Junior High", grade: "3rd grade", name: "Second student"), 
     Student(level: "High School", grade: "1st grade", name: "Third student") 


// Return results 
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    var cell = tableView.dequeueReusableCellWithIdentifier("cellId") 
    if cell == nil { 
     cell = UITableViewCell(style: .Subtitle, reuseIdentifier: "cellId") 
    } 

    let student: Student 

    if searchController.active && (searchController.searchBar.text != "" || !filteredStudents.isEmpty) { 
     student = filteredStudents[indexPath.row] 
    } else { 
     student = studentArray[indexPath.row] 
    } 

    cell!.textLabel?.text = student.name 
    cell!.textLabel!.font = UIFont.systemFontOfSize(14) 

    cell!.textLabel?.text = student.name 
    cell!.textLabel!.font = UIFont.systemFontOfSize(14) 

    let subTitle = "\(student.level)\(", ")\(student.grade)" 

    cell!.detailTextLabel?.text = subTitle 
    cell!.detailTextLabel!.font = UIFont.systemFontOfSize(10) 

    return cell! 
} 
+0

看起來對我好,但是,這是更多的代碼審查少代碼問題,不知道如果這是正確的地方。 –

+0

雅你的代碼是好的 –

+0

我同意,所以我真的不確定發佈這個問題擺在首位。 但是,我認爲這對其他可能有相同問題並正在尋找類似內容的人會有用。 –

回答

0

然後另一種方法試試這個

var subTitle = "\(student.level)" 
    subTitle += ",\(student.grade)" 

或使用像

let subTitle = "\(student.level),\(student.grade)" 

最後追加像

cell!.detailTextLabel?.text = subTitle 
+0

感謝您的反饋:-) –

0

是的,看起來不錯,除了你的字符串有一點點刺骨。以下是我如何簡化它:

let subTitle = "\(student.level), \(student.grade)" // Elementary, 5th grade 
+0

感謝您的反饋:-) –