我有一个包含学生列表的tableview。每个单元格包含学生姓名和副标题。我设法通过创建一个常量并返回这些数据来为我的副标题添加两个元素。
我试图显示:
(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)
然后替代方式试试这个
var subTitle = "\(student.level)"
subTitle += ",\(student.grade)"
或使用
let subTitle = "\(student.level),\(student.grade)"
最后追加
cell!.detailTextLabel?.text = subTitle
答案 1 :(得分:0)
是的,看起来不错,除了你的字符串有点松懈。这是我如何简化它:
let subTitle = "\(student.level), \(student.grade)" // Elementary, 5th grade