Work with vanilla UICollectionViewCell

Problem

Sometimes, you'll work with a very big UICollectionView, ex: A cell contains a UICollectionView, a cell contains a UITableView, a cell contains a bundle UIView and a lot of Auto Layout constraint.

Especially, in that cell contains UIImageView, when you scroll on the screen, it's laggy.

How to solve that

Determine issues

Why does it happen?

  • Rendering UIImage on UIImageView is take time.
  • Draw the Image when scrolling is take time.
  • Auto Layout is take time.
  • Draw UIImageView is take time.
  • Caching on disk is take time.

How I solve that?

  • For rendering UIImage on UIImageView, firstly, avoid use native setUIImage method or setImageWithURL of AFNetworking now. Why?. Look at SDWebImage and see what happen :)
  • For drawing the Image when scrolling, use below method when setup cell. objc cell.layer.shouldRasterize = YES; cell.layer.rasterizationScale = [UIScreen mainScreen].scale;
  • For Auto Layout, it is a problem on iOS 8, make the cell have auto layout scroll very laggy. So this is solution: Override 1 method in UICollectionViewCell class. objc - (UICollectionViewLayoutAttributes *)preferredLayoutAttributesFittingAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes { return layoutAttributes; }
  • For the problem of UIImageView, some properties of it will decrease the performance, ex: clipToBounds
  • Writting and Reading on Disk is taked more time than Memory, therefore, take care when working with Caching.
Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Huy Le

2 bài viết.
32 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
25 4
Đọc 1 quyển sách của Apple là có thể tự trả lời 80% những câu hỏi ngu ngơ của bạn. Mình có tham gia 1 cộng đồng iOS, các bạn tham gia và hỏi đáp n...
Huy Le viết 9 tháng trước
25 4
Bài viết liên quan
White
0 0
Performance regression in ActiveRecord model instance creation in Rails 4.1.x When you guys met the performance issue in Rails 4.1.x. And after be...
Luu Nguyen viết hơn 1 năm trước
0 0
White
4 6
Đây là bài toán thực tế trong project của mình Có lẽ cũng nhiều bạn cũng đã gặp trường hợp tương tự Có khi chúng ta thường tặc lưỡi bỏ qua, hay đ...
bonbon1702_ viết 4 tháng trước
4 6
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
2 bài viết.
32 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!