gpt4 book ai didi

ios - objective c UITableView 无法使用自定义单元格和 View 平滑滚动

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:16:57 24 4
gpt4 key购买 nike

我希望 tableview 在可滚动的每一行中显示多个图像。为此,我使用 UITableViewCustom UITableViewCell,在自定义 tableView 单元格中,我正在生成具有多个 View 和图像的 ScrollView ,所以当我滚动表格时,它不是流畅地滚动它的闪烁。谁能建议我以更好的方式做到这一点?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
// Products table view.
ProductCustomCell *cell = (ProductCustomCell *)[tableView dequeueReusableCellWithIdentifier:@"CatelogCell"] ;//] forIndexPath:indexPath];
if (cell == nil) {
cell = [[ProductCustomCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CatelogCell"];
}
cell.productCellDelegate = self;
[cell initProperties];
[cell showProductsInScroll:catelogBundle];
}

最佳答案

想要平滑滚动tableview,几个小技巧需要注意。

  1. 缓存行的高度( TableView 可以经常请求这个),-- 实际上这一点不是阻止 tableview 滚动的关键点。

  2. 为表中使用的图像创建最近最少使用的缓存(并在收到内存警告时使所有非事件条目无效)-- 你可以使用 SDWebImage 下载图像并缓存它们。有时,您可能想要缓存一些您的 tableview 经常使用的图像,如果您当前的 View 是顶部 View ,即使您收到内存警告,这些图像也可能不会释放。

  3. UITableViewCelldrawRect 中绘制所有内容:如果可能,不惜一切代价避免 subview (或者如果您需要标准的辅助功能,内容 View 的 drawRect:)-- 它可以节省一些成本,但它也可能会花费您更多的时间来编写代码,并且可能难以维护代码。但是在 uitableviewcell 上使用较少的 View 真的很好,这会提高你的性能。

  4. 使您的 UITableViewCell 层不透明(内容 View 也一样)-- 请尽量少用不透明层。

  5. 使用 UITableView 示例/文档推荐的 reusableCellIdentifier 功能-- 您必须遵循此提示。

  6. 避免未预烘焙到 UIImage 中的渐变/复杂图形效果-- 如第 4 点。

当然,大多数时候,如果你的 tableview 滚动不流畅,主要问题是你同步加载图像。

用仪器来测试性能真的很好。

关于ios - objective c UITableView 无法使用自定义单元格和 View 平滑滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21280108/

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