我想在UITableView的最后位置找到最后一个UITableViewCell,并将此单元格的detailTextLabel更改为“Last added”。有人知道如何在Swift中这样做吗?
答案 0 :(得分:0)
由于表视图始终需要数据源,因此您应该查看那里而不是表视图。
NSIndexPath *lastCellIDP = [NSIndexPath indexPathForRow:self.dataSource.lastObject inSection:0];
UITableViewCell *lastCell = [self.tableView cellForRowAtIndexPath:lastCellIDP];
lastCell.detailTextLabel.text = @"U NEED 2 ChAnGE!";
该代码假定您的数据源类型为NSArray
。
也就是说,当你绑定数据时,我会将这个逻辑放在UITableViewCell
子类中,如果它是最后一项,我可能会把你的数据源的属性放在这个属性中。
答案 1 :(得分:0)
tableView为您提供了创建最后一行的indexPath所需的一切,并获取它的单元格。
let lastSectionIndex = tableView.numberOfSections()-1
let lastSectionLastRow = tableView.numberOfRowsInSection(lastSectionIndex) - 1
let indexPath = NSIndexPath(forRow:lastSectionLastRow, inSection: lastSectionIndex)
let cell = tableView.cellForRowAtIndexPath(indexPath)
但根据您的需要,您可能更好地访问tableView的委托中的单元格
func tableView(_ tableView: UITableView,
willDisplayCell cell: UITableViewCell,
forRowAtIndexPath indexPath: NSIndexPath)
像
这样的东西let lastSectionIndex = tableView.numberOfSections()-1
let lastSectionLastRow = tableView.numberOfRowsInSection(lastSectionIndex) - 1
let lastIndexPath = NSIndexPath(forRow:lastSectionLastRow, inSection: lastSectionIndex)
let cellIndexPath = tableView.indexPathForCell(cell)
if cellIndexPath == lastIndexPath {
// the last cell is about to be displayed. change get here.
}