Commit Graph
202 Commits
Author SHA1 Message Date
Scott Goodson ff8ffffb7b [ASCellNode] Upgrades to ASCellNodeVisibilityEvent to ensure it is always synchronized with visibilityDidChange: 2016-03-10 20:21:00 -08:00
Scott Goodson 0e460ca00a [ASRangeController] Don't bother asking UIKit for the visible index paths if view is zero-sized, as it triggers a reloadData. 2016-03-10 19:10:25 -08:00
Scott Goodson 21bebb9d29 [ASRangeController] Improvements to application state change and memory warning handling.
Introduces ASLayoutRangeModeVisibleOnly, allowing the preservation of decoded backing stores without any extra padding to
strictly minimize memory usage while supporting immediate re-display of content.  Set visible range controllers to this mode
upon app suspend / memory warning, while more aggressively clearing others to the ASLayoutRangeModeLowMemory mode.

By default, when the app is running and recieves a memory warning, we set the range mode for non-visible controllers to
ASLayoutRangeModeVisibleOnly.  This is because, unlike in the app suspend case where on app resume we can restore controllers
from LowMemory to VisibleOnly, the memory warning doesn't provide a good opportunity to do this.

A new +Beta API to control this behavior is called +setRangeModeForMemoryWarnings:, as some apps may prefer to use LowMemory
in the memory warning scenario.  For these apps, optimal user experience will require manually setting the range mode back
to some larger value as the user navigates the app, or they will encounter controllers that are temporarily blank and need
a moment to re-display their contents as they start to become visible.
2016-03-09 21:22:45 -08:00
Ethan Nagel 352247184a Ensure that we use the correct default size for collection nodes even if layoutSubviews has not been called yet. This is a more conservative approach than the previous one. 2016-03-09 09:56:32 -08:00
Ethan Nagel 5a3dab5610 Ensure that er use the correct default size for collection nodes even if layoutSubviews has not been called yet 2016-03-08 17:03:55 -08:00
Scott Goodson 9c0d0542dd [ASScrollDirection] Fix scroll direction interpretation after recent changes to this logic. 2016-03-07 22:50:48 -08:00
appleguy 354ccf3e5f Merge pull request #1327 from samhsiung/fix_scrollable_directions
[ASCollectionView] scrollableDirections must account for alwaysBounce(Vertical | Horizontal)
2016-03-05 16:35:48 -08:00
Luke Zhao 03e84e20ac updated with deprecated message 2016-03-05 13:04:20 -08:00
Samuel Hsiung 85394f09b4 Account for alwaysBounce(Vertical|Horizontal) when calculating scrollable directions 2016-03-04 21:33:08 -08:00
appleguy 0a76c7b5d2 Merge pull request #1301 from lkzhao/collectionView-sectionInset-fix
Remove cell constrainedSize adjustment with section insets in constrainedSizeForNode
2016-03-04 14:26:55 -08:00
Luke Zhao aa180c6f3b completely remove cell constrainedSize adjustment from section inset 2016-03-04 13:14:16 -08:00
Michael Schneider aa2ae87c81 Add -waitUntilAllUpdatesAreCommitted to ASTableView and ASCollectionView
The API allows consumer of ASTableView or ASCollectionCiew to block execution of the main thread until all section and row updates are committed.
2016-03-02 19:38:14 -08:00
appleguy e82d1408d2 Merge pull request #1292 from nguyenhuy/visibility_improvements
[ASCellNode] Update visibility API to support new event types for initial visibility & invisibility (caused by VC transitions, etc)
2016-03-02 19:30:31 -08:00
Luke Zhao 818c5bab9c only adjust constraint size if the datasource doesn't implement ConstrainedSizeForNode 2016-03-01 13:16:10 -08:00
appleguy e9fcfefbdd Merge pull request #1294 from vivqu/batch_fetch
[ASCollectionView] Account for contentInset when calculating ASScrollDirection
2016-02-29 22:31:40 -08:00
Huy Nguyen c64f23725f Update ASCellNode visibility API 2016-02-29 20:26:16 -08:00
Vivian Qu 31b576ebcd Address comment 2016-02-29 17:49:26 -08:00
Vivian Qu d28c3c27c6 Account for contentInset when calculating ASScrollDirection 2016-02-29 17:10:39 -08:00
Michael Schneider 084e6f82c1 Trigger updating interfaceState for cells in case ASTableView or ASCollectionView becomes visible or invisible 2016-02-29 17:04:25 -08:00
Levi McCallum c2d379f8f5 Add a bit of documentation to describe the problem this is solving 2016-02-23 13:02:37 -08:00
Levi McCallum 4640801939 Enable animated bounds changes in ASCollectionView 2016-02-23 09:36:11 -08:00
appleguy b75d6627bb Revert "Revert "Revert "[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods.""" 2016-02-19 23:26:29 -08:00
Max Gu 67c8cd5ccf Removing underscore 2016-02-19 22:21:07 -08:00
Max Gu 548b600504 Removing 2 unnecessary checks 2016-02-19 22:18:08 -08:00
Max Gu 115fc2b3da Adding visibility monitoring for ASTableVieww 2016-02-19 22:15:44 -08:00
Max Gu 382509fac8 Letting ASCellNode and its subclasses handle didScroll 2016-02-19 21:30:36 -08:00
Max Gu 53cbd643de Removing ASCellNode+Internal 2016-02-19 14:56:02 -08:00
Max Gu a834382bcb Update for visibility monitoring 2016-02-19 14:27:22 -08:00
Max Gu fa4fc2b6ae Merge remote-tracking branch 'upstream/master' 2016-02-19 12:59:00 -08:00
Max Gu 650b500f92 Merge branch 'master' of https://github.com/Xinchi/AsyncDisplayKit 2016-02-19 12:52:03 -08:00
Max Gu 03446d97e1 Adding scroll visibility 2016-02-19 12:46:12 -08:00
appleguy 58a3ba5e8f Revert "Revert "[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods."" 2016-02-18 23:06:14 -08:00
appleguy 32aa333c21 Revert "[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods." 2016-02-18 19:50:06 -08:00
Max Gu 75eab1db07 Adding scroll visibility 2016-02-18 18:00:37 -08:00
appleguy 33d4c8693d Merge pull request #1171 from lkzhao/ASDataController-reload
[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods.
2016-02-18 17:36:14 -08:00
Luke Zhao 40791dd859 optimize reload data, reload sections, & move nodes performance & logic 2016-02-18 14:44:16 -08:00
Adlai Holler 76708c47cf [ASCollectionView] Always honor sectionInset in both dimensions 2016-02-18 09:54:48 -08:00
appleguy c526fcdff4 Merge pull request #1239 from rahul-malik/rmalik-concurrent-alloc
[ASDataController] Concurrent allocation of ASCellNodes
2016-02-17 22:53:35 -08:00
Rahul Malik 19cc368d15 In addition to allocating nodes in the background, perform that operation concurrently in ASDataController 2016-02-17 22:30:58 -08:00
Scott Goodson 4a37b0882e [ASCollectionView] iOS 7-only issue where willDisplayCell: is not called, fixed for only that OS version.
This includes some method moves to make sure related methods are in closer proximitiy.
2016-02-17 22:21:46 -08:00
Scott Goodson e1597f902a Increase default value for leadingScreensForBatching to 2.0, as 1.0 is not enough
for most network conditions / backend performance.
2016-02-16 22:19:27 -08:00
Rahul Malik 3e5daf4ccd Update data source protocols to make synchronous node creation api methods optional. 2016-02-09 22:47:43 -08:00
Michael Schneider fa2a058585 Rename ASCollectionViewLayoutControllerBeta to ASCollectionViewLayoutController 2016-02-07 15:27:45 -08:00
Michael Schneider 026761c610 Rename ASRangeControllerBeta to ASRangeController and use exclusively 2016-02-07 15:03:24 -08:00
Michael Schneider 5d474bcb1a Remove ASDisplayNode -shouldUseNewRenderingRange method and ASRangeControllerStable class 2016-02-07 15:03:23 -08:00
Rahul Malik c4f489b074 Address comments. 2016-02-04 16:56:29 -08:00
Rahul Malik 521c3fa1c1 Move ASCellNode allocation off the main thread by the addition of a node block
API in ASDataController. Move allocations and loaded node layouts to occur
during batch layout phase.
2016-02-04 10:38:59 -08:00
Huy Nguyen 19335d8c9e Add rangeMode APIs 2016-02-02 11:58:18 -08:00
Huy Nguyen 0b188c7a95 Add minimum tuning params 2016-02-01 16:24:19 -08:00
Huy Nguyen b889d81de8 Don't pre-render cell nodes of collection view when it is not visible or not scrolling 2016-01-31 00:53:28 -08:00