我一直在研究表格视图,并陷入了以下问题。
据我了解,willDisplayCell
委托方法应允许我访问当前的单元格设计。
我的问题是:它无法正常运行。当试图显示80个单元格时,该委托函数仅运行五次。不管该功能如何,在委托函数中编写一行代码都可以使其正常工作。
这是我的代码:
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if indexPath.row == comment_arr.count - 1 {
print("end")
// (1)self.comment_height.constant = self.comment_table.contentSize.height + 30
}
// (2)self.comment_height.constant = self.comment_table.contentSize.height + 30
}
如果(1)行存在,则不起作用。但是,如果存在(2)行,则效果很好。
我如何使其工作?
答案 0 :(得分:0)
首先获取节中的行数。然后找到最后一个项目
let totalRow = tableView.numberOfRows(inSection: indexPath.section)
if(indexPath.row == totalRow - 1)
{
print("end")
return
}
答案 1 :(得分:-1)
type DeepPartial<T> = {
[P in keyof T]?: T[P] extends Array<infer U>
? Array<DeepPartial<U>>
: T[P] extends ReadonlyArray<infer U>
? ReadonlyArray<DeepPartial<U>>
: DeepPartial<T[P]>
};
type EnsureSubInterface<T, U extends DeepPartial<T>> = U
interface Person {
age: number,
name: string,
hometown?: {
city: string,
zip: number
}
}
type SubPerson = EnsureSubInterface<Person, {
name: string,
hometown: {
city: string,
}
}>
type NotSubPerson = EnsureSubInterface<Person, {
name: string,
hometown: {
city: number, // error
}
}>
type NotSubPerson = EnsureSubInterface<Person, {
name: string,
hometown: {
City: string, // error
}
}>
在willDisplayCell之前被调用
此处完整且详细地介绍了该主题: TableView methods