背景爲什麼它需要的tableView(_:indentationLevelForRowAt :)插入細胞與細胞的靜態表視圖
的故事來自於書IOS學徒(埃德的第二個例子,當6 2016 )
創建了一個帶有兩節的UItableView。在故事板中設計了以下內容:第0節有一行滿足一個靜態單元格,第1節有兩行滿滿兩個靜態單元格。
怎麼實現
當接頭區段1的最後一行(即,在畫面A的的dueDate列)用的UIDatePicker一個新的細胞會被插入的tableView(請參閱畫面B )
如何筆者解決充滿的UIDatePicker問題
一個UITableViewCell中加入現場對接在storyBoard中(請參閱圖C),當dueDate行被挖掘時,新的tableCell將被添加到表中
靜態單元格的表視圖沒有數據源,因此不使用像「cellForRowAt」 。爲了這個單元格中插入到表中的以下數據源的功能已經覆蓋
tableView(_:numberOfRowsInSection:)
tableView(_:cellForRowAt:)
tableView(_:heightForRowAt:)
tableView(_:indentationLevelForRowAt:)
問題
功能tableView(_:indentationLevelForRowAt:)
真正混淆了我很多!這裏是完整的代碼
override func tableView(_ tableView: UITableView, indentationLevelForRowAt indexPath: IndexPath) -> Int {
var newIndexPath = indexPath
if indexPath.section == 1 && indexPath.row == 2 {
newIndexPath = IndexPath(row: 0, section: indexPath.section)
}
return super.tableView(tableView, indentationLevelForRowAt: newIndexPath)
}
問題
這是什麼功能的含義是什麼?它的目的是什麼?我已閱讀document,但我沒有得到太多的信息。
當插入第三行/ datePicker單元(indexPath.section == 1 && indexPath.row == 2)
爲什麼函數會縮進第一行newIndexPath = IndexPath(row: 0, section: indexPath.section)
?
很好的答案!非常感謝。 – SLN