335 Commits
Author SHA1 Message Date
appleguy 3f574a3306 Merge pull request #521 from jflinter/jack-uiresponder-additions
Add UIResponder methods to ASDisplayNode
2015-07-04 22:36:09 -07:00
appleguy 58a55f035d Merge pull request #529 from facebook/DataControllerQueues
Overhaul ASDataController and extensively test ASTableView.
2015-07-04 21:06:34 -07:00
Scott Goodson 6220d65747 Property declaration tweak for odd Travis build failure (only on the Tests build). 2015-07-04 20:54:04 -07:00
Scott Goodson 8fa092fb77 Complete overhaul of ASFlowLayoutController.
Introduced ASIndexPath for efficient handling of index paths in C++ vectors,
while maintaining the readability of ".section" and ".row" instead of
".first" and ".second" inside of complicated business logic.

Confirmed that the working range calls are firing appropriately during
ASTableViewStressTest, including the deallocation of the rich text placeholders
provided by ASTextNode.
2015-07-04 20:22:04 -07:00
Ethan Nagel 4963a88717 Propagate ASCellNode's clipsToBounds value to the __ASTableViewCell. This helps work around a bug we are seeing in some rare cases (selected background view overlaps other cells if size of ASCellNode has changed.) 2015-06-29 21:22:55 -07:00
Scott Goodson 57465c7fd3 Overhaul ASDataController and extensively test ASTableView.
This diff resolves all known consistency issues with ASTableView and ASCollectionView.
It includes significantly more aggressive thrash-testing in ASTableViewStressTest,
which now passes on a variety of device and simulator configurations.  It also updates
the unit tests run on every commit to ensure any regression is caught quickly.

A few of the salient changes in this diff:
- ASTableView now uses Rene's ASCollectionViewLayoutController, and actually uses a
UICollectionViewFlowLayout without any UICollectionView.  This resolves an issue where
ASFlowLayoutController was generating slightly out-of-bounds indicies when programmatically
scrolling past the end of the table content.  Because the custom implementation is likely
faster, I will revisit this later with profiling and possibly returning to the custom impl.
- There is now a second copy of the _nodes array maintained by ASDataController.  It shares
the same node instances, but this does add some overhead to manipulating the arrays. I've
filed a task to follow up with optimization, as there are several great opportunities to
make it faster.  However, I don't believe the overhead is a significant issue, and it does
guarantee correctness in even the toughest app usage scenarios.
- ASDataController no longer supports calling its delegate /before/ edit operations.  No
other class was relying on this behavior, and it would be unusual for an app developer to
use ASDataController directly.  However, it is possible that someone with a custom view
that integrates with ASDataController and ASRangeController could be affected by this.
- Further cleanup of organization, naming, additional comments, reduced code length
wherever possible.  Overall, significantly more accessible to a new reader.
2015-06-28 18:03:45 -07:00
appleguy 8beae28b25 Merge pull request #506 from paulyoung/framework-target
Remove old and add new framework target.
2015-06-27 21:58:09 -07:00
Scott Goodson feba7f8ed1 Update the identifier that AsyncDisplayKit uses to label its internal queues (2/2). 2015-06-27 12:10:58 -07:00
Scott Goodson dc19970fe8 Clean up organization and naming of methods internal to ASDataController. 2015-06-27 11:48:55 -07:00
Scott Goodson 06cfe68cbd Clean up ASDataController for readability & API naming consistency. 2015-06-27 11:06:54 -07:00
Jack Flintermann 8a200078bd make ASEditableTextField properly subclass responder methods 2015-06-27 03:19:51 -04:00
Jack Flintermann 540eeec79b move UIresponder methods out of UIView bridging category 2015-06-27 03:19:51 -04:00
Jack Flintermann 0b14d42033 add UIResponder methods to ASDisplayNode 2015-06-27 03:19:51 -04:00
Paul Young 7d464fb6b8 Merge branch 'master' into framework-target
Conflicts:
	AsyncDisplayKit.xcodeproj/project.pbxproj
2015-06-26 23:31:43 +01:00
appleguy da4ae469d8 Merge pull request #514 from eanagel/astableview-programmatic-scrolling-fix-v3
ASTableView programmatic scrolling fix w/contiguous guarantee
2015-06-26 13:18:54 -07:00
Ethan Nagel ae523f4fce better logic for detecting when the pending index path is before or after the visible index paths 2015-06-25 09:53:36 -07:00
Ethan Nagel baf91b4a45 validate that _pendingVisibleIndexPath is contiguous with visibleIndexPaths before appending it. Also, always return a sorted array of NSIndexPaths 2015-06-24 13:18:12 -07:00
Ethan Nagel 0e37bff7c1 Revert to using a single NSIndexPath for the pending visible item 2015-06-24 13:13:43 -07:00
Victor Mayorov a299a5b550 Implemented UIAccessibilityIdentification for ASDisplayNode 2015-06-24 11:03:51 -07:00
Paul Young 8fa6667d93 Remove old and add new framework target. 2015-06-23 23:24:55 -07:00
Rene Cacheaux 0b8f10e488 Removes UICollectionViewFlowLayout requirement. This allows custom collection view layouts. 2015-06-23 13:39:12 -05:00
appleguy e5f2f820c4 Merge pull request #449 from nrcmedia/master
Added iOS framework target for Carthage support
2015-06-23 10:51:23 -07:00
Rene Cacheaux 60e676a38a Adds ASCollectionViewLayoutController and convenience CGRect/ASScrollDirection functions. Fixes default collection view range tuning parameters for Preload and Render ranges; values were flipped. 2015-06-23 07:30:13 -05:00
Rene Cacheaux 4aa796d894 Merge branch 'master' into CollectionViewLayoutSupport 2015-06-21 23:17:41 -05:00
appleguy 607367aacf Merge pull request #496 from facebook/DataControllerCrash
Improvements to thread safety during closely spaced edit events.
2015-06-21 21:16:05 -07:00
Scott Goodson c700618862 Improvements to thread safety during closely spaced edit events.
This applies primarily when beginUpdates / endUpdates is not used.
Due to user interaction-driven edits, like reloads or adding content
at the bottom, sometimes this is unavoidable in app design and thus
critical.

I have a diff in flight to make ASDataController / ASRangeController
robust against very aggressive thrash testing, which will be added
both to the unit test suite and this new example project.
2015-06-21 21:04:09 -07:00
Rene Cacheaux 777b48cc33 Adds layout controller for collection views. This new layout controller leverages UICollectionViewLayout's layoutAttributesForElementsInRect in order to calculate index paths for items in AsyncDisplayKit ranges. Flow layout is still a requirement in order to test the waters. 2015-06-21 18:37:00 -05:00
Rene Cacheaux 0adac6851a Adds abstract ASLayoutController implementation in preparation for custom layout ASLayoutController implementation. 2015-06-21 13:24:24 -05:00
Rene Cacheaux 33118df73b Merge branch 'master' into CollectionViewLayoutSupport 2015-06-21 11:45:56 -05:00
Rene Cacheaux e46c13edc5 Exposes ASCollectionView's ability to determine scroll direction. Scroll direction detection can now support 2-axis collection view layouts. ASCollectionView can now determine scrollable axes. 2015-06-21 11:45:25 -05:00
appleguy ed4ccfcc7f Merge pull request #491 from RCacheaux/CollectionViewLayoutSupport
Custom Collection view layout prep PR
2015-06-20 20:18:54 -07:00
Scott Goodson 904905189c Remove -[_ASDisplayView layoutSubviews] and use only -[_ASDisplayLayer layoutSublayers].
This helps us support special cases such as ASScrollNode correctly driving the -layout
method for subclasses even though it is based on UIScrollView & can't use _ASDisplayView.

I suspect this will be useful for ASCollectionNode and ASTableNode as well, which would
allow nesting those classes inside of other collections / tables (e.g. horizontal
unit within a vertical unit).
2015-06-20 19:40:01 -07:00
Rene Cacheaux a7f7620b8c Turns ASScrollDirection into Option set in preparation for supporting 2-axis collection view layouts. Clears test host target warnings. 2015-06-20 18:25:48 -05:00
Scott Goodson b4aaf50953 Clean up login in setFrame: for clarity and compactness 2015-06-18 13:16:35 -07:00
Victor Mayorov 0c7b1051d6 Fixed bounds 2015-06-15 18:35:32 +03:00
Victor Mayorov e94699ae31 Fixed bounds in ASDisplayNode. Bounds.origin shouldn't be affected by -[ASDisplayNode setFrame:] method. 2015-06-15 18:30:44 +03:00
Scott Goodson ba5a6e15c0 Disable asyncDataFetching in ASTableView and ASCollectionView init methods.
It's currently unreliable for some use cases that issue editing calls while
content is displayed or being interacted with.  The performance gain is not
sufficient to sacrifice correctness for the clients that hit this issue,
so it will remain off until fully resolved.
2015-06-14 19:59:39 -07:00
Scott Goodson c50f3b9cad Support transparent (e.g. clearColor) background for precomposited trees. 2015-06-14 17:30:42 -07:00
Joost van Dijk bd7941507b Use a zero origin for root container node frame during rasterization 2015-06-13 20:51:58 +02:00
VictorM 2c74904368 Fixed crash with deallocated CGImageRef 2015-06-11 10:42:28 +03:00
Victor Mayorov 9c20edb310 Added checking that sessionTask hasn't been added during creation of previous one 2015-06-10 17:58:35 +03:00
Victor Mayorov 7359e2255d Added synchronisation for sessionTask property 2015-06-10 17:50:21 +03:00
Victor Mayorov 7167e4a589 Fixed ASBasicImageDownloader to handle multiple request with the same URL 2015-06-10 15:38:51 +03:00
Niels van Hoorn b8f60e126a Added iOS framework target for Carthage support 2015-06-09 09:16:06 -07:00
appleguy 2bc0da021f Merge pull request #439 from eanagel/passthrough-nonlink-touches
Add option to pass through touches to non-link text in ASTextNode
2015-06-06 19:25:39 -07:00
Ian Cloutier 45f719fc6c Create pending nodes set lazily 2015-05-23 12:04:58 -04:00
appleguy b9597ff96b Merge pull request #461 from facebook/memoryMethods
Updating API names for network range and memory culling before ASDK 1.2 tag.
2015-05-21 22:44:44 -10:00
Scott Goodson e3f0e66cb3 Updating API names for network range and memory culling before ASDK 1.2 tag. 2015-05-21 22:43:38 -10:00
appleguy 5d0a2849de Merge pull request #407 from ianolito/fix-placeholder-api
Fix handling of pending nodes and placeholder layer
2015-05-21 21:43:07 -10:00
appleguy 8043e36bf6 Merge pull request #430 from eanagel/astableview-programmatic-scrolling-fix-v2
Bug Fix - ASTableView sometimes fails to render cell contents when scrolling programmatically.
2015-05-21 12:54:19 -10:00