gpt4 book ai didi

ios UITableViewCell 以编程方式在 drawRect 与 layoutSubviews 中创建

转载 作者:搜寻专家 更新时间:2023-10-31 08:08:11 24 4
gpt4 key购买 nike

我一直在尝试通过自动布局创建复杂的 UITableViewCell,但它在滚动时会产生巨大的性能延迟,所以我决定采用基于框架的方式,即以编程方式。

单元格布局的复杂性就像 Facebook 卡片,其中每个单元格对于动态文本和图像都是不同的。

我尝试在 layoutSubviews 中渲染单元格,但滚动仍然很差,但比 Autolayout 更好。

我还尝试在 drawRect 中渲染单元格,这提供了最佳性能,但在滚动时我无法更新帧,因为它只被调用一次。

有人可以指导我最好的滚动性能的最佳情况吗?我卡住了。

最佳答案

我也得出了同样的结论,即在处理具有一定复杂性的单元格时,使用带有约束的 Storyboard变得太慢了。我有 10 多种不同类型的细胞。在这种情况下,我不得不使用框架。

恐怕除了使用 subview 的框架来布局单元格之外别无他法。使用 heightForRowAtIndexPath 和 cellForRowAtIndexPath 方法,您可以完全设置单元格的样式。

调用的第一个方法是 cellForRowAtIndexPath。在这种方法中,您可以完全设置单元格的样式,布置 View 等。完成所有操作后,您也可以确定单元格的高度。然后,您可以从父 View 的框架中获取单元格高度并使用它。

在 heightForRowAtIndexPath 中,如果您将高度保存在数组中,则可以有一行返回单元格的高度。

我有点忽略了 layoutsubviews 方法,因为我不得不重构一堆现有代码。然而,我只在 cellForRowAtIndexPath 而不是 layoutsubviews 方法中布置了单元格。在这种方法中,我可以使用 subview 的高度来计算父 View 的高度。在布局 subview 中, View 布局较晚,这可能会导致问题。

无论如何希望这些信息对某人有用。

关于ios UITableViewCell 以编程方式在 drawRect 与 layoutSubviews 中创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36397234/

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