将注释部分添加到 TableViewCell 的首选方法是什么?
What's someones preferred method for adding a comments section to a TableViewCell?
我目前正在使用 tableview 来显示个人 "Posts." 在每个 tableview 单元格中都是唯一的 Post。我想在每个单元格中添加 "comments" 的集合。我能想到的收集评论的唯一方法是在 Post 的单元格内添加另一个 TableView。实现此目标的一些首选方法是什么?在另一个 TableViews Cell 中使用 TableView 似乎相当复杂。
我认为这不是个好主意。
在您的 table 视图中创建 N 个部分,每个 post 一个部分。
每个部分
- 第
0
行的单元格将填充 post 数据
- 以下行中的每个单元格都将填充评论数据。
例子
struct PostModel {
let title: String
let comments: [String]
}
class Posts: UITableViewController {
private var posts: [PostModel] = ... // TODO
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return posts.count
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return posts[section].comments.count + 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let post = posts[indexPath.section]
let cell = tableView.dequeueReusableCellWithIdentifier("StandardCell") ?? UITableViewCell(style: .Default, reuseIdentifier: "StandardCell")
if indexPath.row == 0 {
cell.textLabel?.text = post.title
return cell
} else {
let comment = post.comments[indexPath.row-1]
cell.textLabel?.text = comment
return cell
}
}
}
我目前正在使用 tableview 来显示个人 "Posts." 在每个 tableview 单元格中都是唯一的 Post。我想在每个单元格中添加 "comments" 的集合。我能想到的收集评论的唯一方法是在 Post 的单元格内添加另一个 TableView。实现此目标的一些首选方法是什么?在另一个 TableViews Cell 中使用 TableView 似乎相当复杂。
我认为这不是个好主意。
在您的 table 视图中创建 N 个部分,每个 post 一个部分。
每个部分
- 第
0
行的单元格将填充 post 数据 - 以下行中的每个单元格都将填充评论数据。
例子
struct PostModel {
let title: String
let comments: [String]
}
class Posts: UITableViewController {
private var posts: [PostModel] = ... // TODO
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return posts.count
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return posts[section].comments.count + 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let post = posts[indexPath.section]
let cell = tableView.dequeueReusableCellWithIdentifier("StandardCell") ?? UITableViewCell(style: .Default, reuseIdentifier: "StandardCell")
if indexPath.row == 0 {
cell.textLabel?.text = post.title
return cell
} else {
let comment = post.comments[indexPath.row-1]
cell.textLabel?.text = comment
return cell
}
}
}