forkingdog / forkingdog/FDStackView
iOS8系统下部分情况下卡顿问题
- 主要语言
- 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