uitableview willdisplaycell委托很奇怪

时间:2019-02-03 17:07:00

标签: ios swift xcode uitableview delegates

我一直在研究表格视图,并陷入了以下问题。

据我了解,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)行,则效果很好。

我如何使其工作?

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