startinghaldaemon卡住

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了startinghaldaemon卡住相关的知识,希望对你有一定的参考价值。

参考技术A 兼容性不好。startinghaldaemon卡住是因为U盘启动盘兼容性不好而造成启动速度过慢,所以就一直显示Starting。兼容性,是指几个硬件之间、几个软件之间或是几个软硬件之间的相互配合的程度。

用于 UITableView 的自定义 XIB 单元格在滚动时卡住/卡住

【中文标题】用于 UITableView 的自定义 XIB 单元格在滚动时卡住/卡住【英文标题】:Custom XIB cell for UITableView stuttering / hitching on scroll 【发布时间】:2013-06-15 19:47:49 【问题描述】:

我正在为表格的单元格视图注册一个 XIB。没有什么花哨的,非常简单的小单元格视图,带有几个 UIImageView 和一些 UILabel。事情按预期工作,但是当我滚动时,我会遇到很多口吃/搭便车。我做了一些分析,似乎在 [UITableView _dequeueReusableTyper:withIdentifier:] 上花费了很多时间。我已经注释掉了我的 cellForRowAtIndexPath 方法中的所有代码,除了简单的出列和返回单元格,而且口吃仍然存在。所以罪魁祸首确实是这个出列调用堆栈。但我不确定如何优化它以使其顺利运行,而不是简化我的 XIB 中的单元格视图,这可能不是一个选项(或一个困难的选项)。我在这里错过了什么我应该尝试的东西吗?

出队代码:

UIMyTableViewCell *cell = [table dequeueReusableCellWithIdentifier:@"MyTableCell"];
if (cell == nil)

    UINib *nib = [UINib nibWithNibName:@"UIMyListTableCellView" bundle:nil];
    [table registerNib:nib forCellReuseIdentifier:@"MyTableCell"];

cell = [table dequeueReusableCellWithIdentifier:@"MyTableCell"];

【问题讨论】:

您在单元格中放入什么样的图像 - 什么尺寸/分辨率? 你能发布一些代码吗?出队的发生方式可能存在错误。 小图像。一张图片是 100x100 像素,还有两张较小的 30x30 像素。 我的出队代码:UIMyTableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"MyTableCell"]; if (cell == nil) UINib *nib = [UINib nibWithNibName:@"UIMyListTableCellView" bundle:nil]; [table registerNib:nib forCellReuseIdentifier:@"MyTableCell"]; cell = [table dequeueReusableCellWithIdentifier:@"MyTableCell"]; 【参考方案1】:

我能够摆脱口吃并获得高滚动帧率。对于遇到类似问题的其他人,问题在于将自定义 XIB 用于表格单元格。显然这个代码路径没有优化,或者有什么问题。我通过为自定义表格单元格实现自己的 drawRect 方法来替换它,现在事情正在全速发展。

【讨论】:

【参考方案2】:

你应该只调用一次-registerNib:forCellReuseIdentifier:,你每次都会调用它[self.tableView dequeueReusableCellWithIdentifier:@"MyTableCell"]返回nil

为什么你从self.tableView开始然后切换到table?这些是同一个对象吗?

如果它们不是同一个对象,那么[self.tableView dequeueReusableCellWithIdentifier:@"MyTableCell"] 将始终返回nil,而您将始终调用-registerNib:forCellReuseIdentifier:


尝试将-registerNib:forCellReuseIdentifier: 移动到另一种方法,例如-viewDidLoad,或者对重复调用进行一些保护。

@property (assign, nonatomic) BOOL nibRegistered;

if (!self.nibRegistered) 
    self.nibRegistered = YES;
    UINib *nib = [UINib nibWithNibName:@"UIMyListTableCellView" bundle:nil];
    [table registerNib:nib forCellReuseIdentifier:@"MyTableCell"];

【讨论】:

糟糕,对于不同的表对象引用感到抱歉。是的,它们确实是一样的,我只是在复制代码时搞砸了。至于笔尖的注册,我记得笔尖注册在某些情况下会丢失(我认为在表重新加载或其他情况下)。但无论如何,这真的不是问题,我没有看到任何过度注册的呼叫发生。此外,无论哪种方式,它都不会改变性能,这是我要解决的问题。

以上是关于startinghaldaemon卡住的主要内容,如果未能解决你的问题,请参考以下文章

2021-09-28:合并区间。以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠

通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用 矩形的左上角坐标来标识,包含: 添加两个属性:矩形左上角坐标startX和startY。 两个构造方法: 带4个参数的构

水波shader

滑动事件

mark

玫瑰花