forkingdog / forkingdog/FDStackView
iOS8系统下部分情况下卡顿问题
- Ngôn ngữ chính
- Objective-C
- Star
- 2.5k
- Fork
- 310
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
(void)intrinsicContentSizeInvalidatedForChildView:(UIView *)childView {
[self.distributionArrangement intrinsicContentSizeInvalidatedForItem:childView];
[self.alignmentArrangement intrinsicContentSizeInvalidatedForItem:childView];
}
方法名很明确指出需要无效化传进去的childView的intrinsicSize,但是方法全程内部并没有用到childView而是对整个stackView重新布局了,以至于只要stackView有一些小改动,整个stackView都要跟着刷新,如果stackView里有两个childView需要更新,根据代码逻辑,刷新就会调用两次,这性能损耗非常大,目前我已应用在UITableViewCell的布局中,Cell上如果需要设置多个文本时滚动卡顿非常明显(iOS8下)
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Tìm intrinsicContentSizeInvalidatedForChildView: và lần theo các lời gọi của nó đến distributionArrangement và alignmentArrangement. Tái hiện hiện tượng cuộn chậm bằng một UITableViewCell chứa nhiều text view trên iOS 8, sau đó xác minh rằng việc invalidation kích thước của view con không kích hoạt việc layout stack view lặp lại không cần thiết, đồng thời vẫn giữ nguyên behavior sắp xếp hiện có.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- objective-c
- Lĩnh vực
- mobile-dev, performance
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100