534 Commits

Author SHA1 Message Date
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
Huy Nguyen
95e787b226 Remove stack children type:
- ASLayoutable requires mutable properties that are used when attached to a stack layout.
- Thus, ASLayoutable objects (including ASDisplayNode) can be injected into stack layout directly.
- ASStackLayoutNodeChild no longer needed.
- Tests and Kitten sample updated.
2015-06-26 11:47:42 +07:00
Huy Nguyen
f588bceb4d Introduce ASLayoutable and eliminate ASCompositeNode:
- Both ASDisplayNode and ASLayoutNode conforms to this protocol.
- ASDisplayNode can be embeded directly into layout graph.
- Eliminate ASCompositeNode.
- Fix ASStaticSizeDisplayNode not recpect min constrained size.
- Updated tests.
2015-06-26 09:29:16 +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
Huy Nguyen
99fe79339d Simplify ASDimension:
- ASRelativeSize and ASRelativeSizeRange are used only by ASStaticLayoutNode. They are declared in a standalone header.
- ASDimension contains a minimal set of new size types required to use the common layouts. Thus minimize the learning curve.
2015-06-25 11:36:02 +07:00
Huy Nguyen
259bbf22bc Fix naming conventions on equal and resolve methods of new size types. 2015-06-25 11:34:37 +07:00
Huy Nguyen
93564899fd Remove Auto size type. 2015-06-25 11:34:37 +07:00
Huy Nguyen
810bc3ab84 Rename ASLayoutNode's -computeLayoutThatFits to -calculateLayoutThatFits. 2015-06-25 11:34:37 +07:00
Huy Nguyen
64e2323a4e Remove ASLayoutNodeSize:
- ASLayoutNode no longer has 'size' constraint during its initialization..
- ASLayoutNode no longer needs parentSize to calculate its layout.
2015-06-25 11:34:36 +07:00
Huy Nguyen
90a78684c9 Revert to using ASDisplayNodeSubclassOverridesSelector, to minimize changes and provide a bit of convenience within ASDisplayNode. 2015-06-25 11:34:36 +07:00
Huy Nguyen
aea91fff86 Fix typo in ASDisplayNode. 2015-06-25 11:34:36 +07:00
Huy Nguyen
abe98d5b09 Integrate new layout nodes to the framework.
- Introduce ASLayoutNode and its subclasses.
- ASDisplayNode measures its ASLayoutNode and cache the result (ASLayout). Calculated size and position of each subnode can be retrieved from the calculated layout.
- Custom nodes need to override -layoutNodeThatFits:(CGSize) instead of -calculateSizeThatFits:(CGSize).
- Custom nodes do not need to layout its subnodes (in -layout:) anymore. ASDisplayNode can handle the job most of the time, by walking through its layout tree.
- ASCompositeNode is used to embed (display) subnodes to a node's layout. That way, each subnode will also be measured while the parent node is measuring. And the parent node knows where its subnodes are within its layout.
2015-06-25 11:34:35 +07:00
Huy Nguyen
f8531f467d Add Layout nodes.
- The code is forked from LayoutComponents in ComponentKit.
- Public interfaces are modified to be strictly Objective-C. As a result, users are not forced to switch to Objective-C++, the linker can happily compile and Swift fans can continue using the mighty ASDK.
2015-06-25 11:32:30 +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
appleguy
7e50f05dfd Merge pull request #445 from levi/master
Prevent UITableView insertion/deletion animations by default
2015-05-21 12:49:48 -10:00