Summary: Prefix all private methods with an underscore. A private method is defined as any method not exposed via an interface or protocol. This will improve the readability of the code and hopefully reduce bugs.
Reviewed By: rnystrom
Differential Revision: D7421346
fbshipit-source-id: 536472d57ea7fd8990fe50f3e950907ca57b8e6d
Summary:
* Issue: [IGListAdapter visibleSectionControllers] calls [UICollectionViewLayout layoutAttributesForElementsInRect:] which can be expensive. And since visibleSectionControllers is called in scrollViewDidScroll, it can add up and take a toll on scroll performance. On an iPhone 7, it's in 2-10% of the main-thread samples (using Time Profiler).
* Fix: IGListDisplayHandler conveniently keeps track of visible IGListSectionControllers, so let's just use that. Now, [IGListAdapter visibleSectionControllers] drops to ~0.3% of samples.
Reviewed By: rnystrom
Differential Revision: D6351474
fbshipit-source-id: 66914db95e08498927bfbceda4d2e9d58cbc7530
Summary:
This was a little bit of an invasive change with the display handler, but I think that this is the right call. When sending display events for objects, we should account for the supplementary view as part of the section controller. This is especially useful for headers and footers.
Note that this wont effect the working range API at all.
Fixes#300
Closes https://github.com/Instagram/IGListKit/pull/470
Differential Revision: D4551338
Pulled By: rnystrom
fbshipit-source-id: dda6fbf18bcfc2c941d80ee2314a543d1ab83843
Summary:
- [x] All tests pass. Demo project builds and runs.
No breaking changes that I am aware of.
Closes https://github.com/Instagram/IGListKit/pull/440
Differential Revision: D4448496
Pulled By: rnystrom
fbshipit-source-id: 9ad9bc3734b605ceab25bf6cdf993568aa6561c1