97 Commits
Author SHA1 Message Date
Scott Goodson e517f88e65 Rename ASCellNode delegate to layoutDelegate to avoid common naming overlap 2015-11-01 12:51:46 -08:00
appleguy 0598935957 Merge pull request #793 from nguyenhuy/ImproveCellNodeRelayout
ASCellNode delegate to automatically resize in table & collection when -setNeedsLayout called.
2015-11-01 11:11:32 -08:00
Huy Nguyen fb18e7635b Notify ASCellNodeDelegate even if a relayout doesn't result in a resize
If the delegate is an ASTableView, relayoutAnimation will still be considered for animation.
2015-10-29 21:27:29 +02:00
Adlai Holler cf8946cf97 Use fast enumeration when performing collection view update blocks 2015-10-29 10:30:12 -07:00
Huy Nguyen 00400e166f Introduce ASCellNodeDelegate
- Cell node automatically notifies the delegate after a relayout (via -setNeedsLayout) that results in a new size. Confirming to ASCellNodeDelegate; ASTableView and ASCollectionView reload the calling cell upon notifications. These views automatically set themselves as delegate of every node.
- The result is that ASCellNode subclasses don't need to manually notify the containing view. Thus, `-relayoutItemAtIndexPath` and `-relayoutRowAtIndexPath` are removed.
- Kittens example is updated to reflect the change.
2015-10-29 16:59:46 +02:00
Huy Nguyen cd31f884dd Move ASDisplayNodePerformBlockOnMainThread to ASInternalHelpers 2015-10-29 16:09:36 +02:00
Adlai Holler 50485663b9 Never use setAnimationsEnabled: so we don't risk corrupting enabledness 2015-10-28 16:09:56 -07:00
appleguy 7e616756a7 Merge pull request #722 from nguyenhuy/RelayoutCellAPI
Add relayout item/row APIs to ASTableView and ASCollectionView
2015-10-25 21:28:20 -07:00
appleguy 8dddcaa74b Merge pull request #766 from levi/levi/synchronous-reloaddata
Add synchronous reloadData methods to ASTableView and ASCollectionView
2015-10-25 21:05:52 -07:00
Levi McCallum e0dfe8f0c4 Fix method naming 2015-10-23 06:10:06 -07:00
Levi McCallum 722b90f1cf Implement basic immediate reloadData method on table and collection view 2015-10-22 21:28:44 -07:00
Levi McCallum c33d6efa8a WIP synchronous reload data on collection view 2015-10-22 21:28:30 -07:00
Levi McCallum e9708633bc Remove stubbed collection view layout setter behavior 2015-10-21 23:17:38 -07:00
Levi McCallum e8ce7fcbb2 Clean up caching of collection view delegate selectors on the inspector 2015-10-21 23:17:38 -07:00
Levi McCallum 084d60883b Add assertion to flow layout inspector down casting 2015-10-21 23:17:38 -07:00
Levi McCallum db0a0326d7 Rename layoutDelegate to layoutInspector in ASCollectionView 2015-10-21 23:17:38 -07:00
Levi McCallum 8f289d9977 Back internal kind collection with a set 2015-10-21 23:17:37 -07:00
Levi McCallum 12194199cd Clean up layout delegate protocol API 2015-10-15 11:40:53 -07:00
Levi McCallum 772e9b95a4 Document layout delegate on ASCollectionView 2015-10-15 11:40:53 -07:00
Levi McCallum 0446902c17 Remove supplementary view assertion 2015-10-15 11:40:53 -07:00
Levi McCallum e2bbde2a4e Clean up usage of internal flow layout inspector 2015-10-15 11:40:53 -07:00
Levi McCallum ee0cc2001a Add support for loaded node layout for supplementary views 2015-10-15 11:40:52 -07:00
Levi McCallum ba72c73779 Clarify default value behavior of the layoutDelegate for flow layouts 2015-10-15 11:40:52 -07:00
Levi McCallum fddb0061b0 Use ASCellNodes for supplementary nodes 2015-10-15 11:40:52 -07:00
Levi McCallum 0870d50e36 Clarify layout delegate assertion messages 2015-10-15 11:40:52 -07:00
Levi McCallum 71966f3549 Relayout all nodes in backing store on relayoutAllNodes 2015-10-15 11:40:51 -07:00
Levi McCallum 5839e5bf3e Assert supplementary node validity before data controller use 2015-10-15 11:40:51 -07:00
Levi McCallum 2958c848aa Asset presence of async delegate before accessing layout delegate 2015-10-15 11:40:50 -07:00
Levi McCallum 8efca60bac Handle initial sizing delegate implementation in flow layout inspector 2015-10-15 11:40:50 -07:00
Levi McCallum ba4298e6bc Optimize string concatenation 2015-10-15 11:40:50 -07:00
Levi McCallum b436a01000 Assert supplementary node kind registration 2015-10-15 11:40:50 -07:00
Levi McCallum 835f9e99ca Batch render supplementary views on reload data 2015-10-15 11:40:49 -07:00
Levi McCallum 73ddebed81 Implement UICollectionViewFlowLayout heuristics in a default inspector 2015-10-15 11:40:49 -07:00
Levi McCallum a659ce7bf8 Cleanup setup of default flow layout inspector 2015-10-15 11:40:49 -07:00
Levi McCallum 4c6585d3b3 Fix build errors from bad merge 2015-10-15 11:40:49 -07:00
Levi McCallum 5dee3f62cc Extract number of supplementary sections into the inspector 2015-10-15 11:40:49 -07:00
Levi McCallum da7a2a5d48 Further implement data controller support and layout introspection 2015-10-15 11:40:49 -07:00
Levi McCallum e9eadac4ae Stub out ASCollectionDataController subclass 2015-10-15 11:40:48 -07:00
Levi McCallum 0d2332bd82 Allow ASCollectionView to register for supplementary container 2015-10-15 11:38:48 -07:00
Levi McCallum 2956c0cd8a Extract flow layout methods into a separate delegate 2015-10-15 11:38:47 -07:00
Vitaly Baev 1a78cd2e66 ASCellNode selected/highlighted properties in ASCollectionView 2015-10-15 20:27:42 +03:00
Huy Nguyen 12c087d967 Merge branch 'master' into RelayoutCellAPI 2015-10-12 21:31:49 +03:00
Scott Goodson a8435b494c Revert "Properly support operating with nil asyncDelegate for Table & Collection."
This reverts commit 77745c55b0.

Bug was found / reported in https://github.com/facebook/AsyncDisplayKit/issues/721

Attempting resolution here, but need to fix for current clients now:
https://github.com/facebook/AsyncDisplayKit/pull/724
2015-10-07 14:48:37 -07:00
Huy Nguyen f13f61c2f0 Add relayout item/row APIs to ASTableView and ASCollectionView. 2015-10-07 21:25:07 +03:00
Scott Goodson 77745c55b0 Properly support operating with nil asyncDelegate for Table & Collection. 2015-10-04 17:11:41 -07:00
Scott Goodson a58844379c Implementation of Synchronous Concurrency features for AsyncDisplayKit 2.0
This provides internal features on _ASAsyncTransaction and ASDisplayNode to facilitate
implementing public API that allows clients to choose if they would prefer to block
on the completion of unfinished rendering, rather than allow a placeholder state to
become visible.

The internal features are:
-[_ASAsyncTransaction waitUntilComplete]
-[ASDisplayNode recursivelyEnsureDisplay]

Also provided are two such implementations:
-[ASCellNode setNeverShowPlaceholders:], which integrates with both Tables and Collections
-[ASViewController setNeverShowPlaceholders:], which should work with Nav and Tab controllers.

Lastly, on ASDisplayNode, a new property .shouldBypassEnsureDisplay allows individual node types
to exempt themselves from blocking the main thread on their display.

By implementing the feature at the ASCellNode level rather than ASTableView & ASCollectionView,
developers can retain fine-grained control on display characteristics.  For example, certain
cell types may be appropriate to display to the user with placeholders, whereas others may not.

Follow-up work will include unit tests, revisiting names, and the header locations of definitions.
2015-09-27 19:14:36 -07:00
Scott Goodson ee4b771d5d Fix simple issue with ASTableViewStressTest, make Table / Collection handle changes to dataSource / delegate. 2015-09-24 19:59:12 -07:00
Adlai Holler 86c1fa3981 Rename flag, default it to true, shorten some comment lines 2015-09-19 14:21:33 -07:00
Adlai Holler 7cd79e6e6f Tweak comment 2015-09-19 13:43:18 -07:00
Adlai Holler f0f26d3dab Tweak the new pendingReload flag 2015-09-19 13:40:41 -07:00