forkingdog / forkingdog/FDStackView

iOS8系统下部分情况下卡顿问题

未关闭
#22 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Objective-C
星标
2.5k
派生
310
PR 合并指标
30 天内没有已合并 PR

描述

(void)intrinsicContentSizeInvalidatedForChildView:(UIView *)childView {
[self.distributionArrangement intrinsicContentSizeInvalidatedForItem:childView];
[self.alignmentArrangement intrinsicContentSizeInvalidatedForItem:childView];
}

方法名很明确指出需要无效化传进去的childView的intrinsicSize,但是方法全程内部并没有用到childView而是对整个stackView重新布局了,以至于只要stackView有一些小改动,整个stackView都要跟着刷新,如果stackView里有两个childView需要更新,根据代码逻辑,刷新就会调用两次,这性能损耗非常大,目前我已应用在UITableViewCell的布局中,Cell上如果需要设置多个文本时滚动卡顿非常明显(iOS8下)

贡献指南

这个仓库没有索引到贡献指南

调研方向

定位 intrinsicContentSizeInvalidatedForChildView:,并跟踪其对 distributionArrangement 和 alignmentArrangement 的调用。在 iOS 8 上使用包含多个文本视图的 UITableViewCell 重现滚动变慢的问题,然后验证子视图大小失效不会触发不必要的重复 stack view 布局,同时保留现有的排列行为。

由索引模型根据 Issue 内容生成。

评估

技术栈
objective-c
领域
mobile-dev, performance
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。