gpt4 book ai didi

ios - 由于 titleForHeaderInSection 导致 iOS 性能降低

转载 作者:行者123 更新时间:2023-11-30 13:02:21 25 4
gpt4 key购买 nike

我有一个计算卡路里的应用程序。用户输入他们的卡路里(每一点食物都成为 TableView 中的一行。每个部分代表一天。

我有一个部分标题,添加了当天的所有卡路里。

现在我有一年的输入,加载应用程序的性能很慢(大约需要 5 秒)。我使用了 Instruments,负责的方法是 titleForHeaderInSection。我发现的问题是,当 TableView 加载时,每个部分都会调用此方法(而不仅仅是显示的部分)。

有什么办法可以解决这个问题吗?我热衷于显示每日总计。

最佳答案

如果您对标题的计算有点“昂贵”,那么您需要一种方法来推迟该计算。没有好的方法可以知道何时调用 titleForHeaderInSection 来真正显示标题以及何时调用它只是为了设置表格 View 。

一种解决方案是将 titleForHeaderInSection 的使用替换为 viewForHeaderInSectionheightForHeaderInSection

技巧是仅在标题 View 实际添加到 TableView 时设置标题 View 的文本。这可以在自定义 header View 类的 willMove(toSuperview:) 方法中完成。如果父 View 非零,则该 View 将被添加到其父 View 中。您需要一种方法来使用该方法来实际计算标题文本。

正如评论中指出的,另一种可能的解决方案是每天只计算一次总数并存储该值。然后在 TableView 中加载数据时,就不需要做任何计算了。只需使用预定值即可。

关于ios - 由于 titleForHeaderInSection 导致 iOS 性能降低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39780189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com