通过运行时间分析器,我注意到,即使没有发生任何事情,也没有任何用户交互,[NSVIEw displayIfNeeded]在这些视图中不断被调用.此外,如果我调整窗口大小,我可以找到一些配置,其中cpu使用率下降到正常值.如果我将窗口缩小到原来的大小,cpu使用率再次增长,并且再次调用[NSVIEw displayIfNeeded].
即使约束没有崩溃(在控制台中没有令人不满意的约束错误的迹象),似乎有一些视图和大小的组合不断刷新.
有没有人经历过这个?或者至少知道如何更好地跟踪问题?
经过一番尝试和错误,我把它缩小到了这个观点
它是tableVIEw中的一个自定义单元格.如果我用正常的单元格替换它,cpu的使用将恢复正常.我也检查过布局是不明确的.
解决方法 这通常是由于约束的四舍五入问题.特别是如果你使用“等宽”约束.另一个类似问题的原因是使用“容器中心”约束.这常常导致四舍五入的问题.
检查您的约束,如果您使用这些约束之一并降低它们的优先级.这允许忽略这些规则,如果它们不适合.或者甚至更好,创建没有中心和相等宽度/高度限制的布局.
总结以上是内存溢出为你收集整理的可可约束导致高CPU使用全部内容,希望文章能够帮你解决可可约束导致高CPU使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)