359 Commits

Author SHA1 Message Date
Scott Goodson
61bb4f022e Improved messages for thread affinity and frame transform identity assertions. 2015-10-04 11:15:57 -07:00
Garrett Moon
c90708a25b Corner radius and clipsToBounds should be captured outside block 2015-10-02 09:30:49 -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
47be24037d Reduce _ASAsyncTransaction allocations by ensuring nodes without display methods don't create them. 2015-09-24 19:26:00 -07:00
Jack Flintermann
ce33149548 make additional private headers actually private; import all public headers in AsyncDisplayKit.h 2015-09-16 23:31:48 -04:00
rcancro
9c8aaeb17e Move ASLayoutOptionsPrivate to the private folder
fixes:
https://github.com/facebook/AsyncDisplayKit/issues/654
2015-09-15 17:11:20 -07:00
rcancro
2f3562fa09 scott's comments 2015-09-15 09:11:19 -07:00
rcancro
01be5acece added a callback for initWithViewBlock/initWithLayerBlock 2015-09-14 20:36:08 -07:00
rcancro
b14e189bfb Addressed comments to LayoutOptions PR 2015-09-11 16:07:18 -07:00
rcancro
4bb8472182 Removed ASBaselineLayoutSpec and made baseline alignment part of ASStackView 2015-09-10 17:29:39 -07:00
Ethan Nagel
8ea40a0265 Merge branch 'master' into ASDisplayNode-init-perf
Conflicts:
	AsyncDisplayKit/ASDisplayNode.mm
	AsyncDisplayKit/Private/ASDisplayNodeInternal.h
2015-09-09 22:17:49 -07:00
rcancro
5786bc1b5b Fixed infinite recursion in finalLayoutable, removed child properties from ASLayoutSpecs 2015-09-08 09:50:47 -07:00
rcancro
8263a9f53a Kittens sample working 2015-09-08 09:50:47 -07:00
rcancro
cbaf178950 Hide ASLayoutOptions from the user 2015-09-08 09:50:47 -07:00
rcancro
15b3fd6eab Moved ASLayoutable* properties into ASLayoutOptions class 2015-09-08 09:50:27 -07:00
Garrett Moon
32582fca58 Fixes shouldRasterizeSubnodes
Currently, subnodes of nodes marked with shouldRasterizeSubnodes do not get layout calls. This adds the call to layout and changes the __layout method to reference self.bounds instead of _layer.bounds.

Also adds support for corner radius when rasterizing subnodes.
2015-09-01 13:25:27 -07:00
rcancro
9bf62d14ab Merge remote-tracking branch 'upstream/master' into baseline
# Conflicts:
#	AsyncDisplayKit/Layout/ASLayoutSpec.h
#	AsyncDisplayKit/Layout/ASStackLayoutSpec.mm
2015-08-24 09:54:36 -07:00
rcancro
1d31a21ccb Merge branch 'baseline' of github.com:rcancro/AsyncDisplayKit into baseline
# Conflicts:
#	AsyncDisplayKit.xcodeproj/project.pbxproj
#	AsyncDisplayKit/ASTextNode.h
#	AsyncDisplayKit/Details/ASDataController.mm
2015-08-22 19:14:59 -07:00
rcancro
e991242513 removed "Stack" from baseline related layout names 2015-08-22 19:03:55 -07:00
rcancro
49ac178166 huy's comments 2015-08-22 19:03:55 -07:00
ricky cancro
5d286930f6 Renamed ASStackText... to ASBaselineStack... 2015-08-22 19:03:54 -07:00
rcancro
830d39af92 fixed bug for baseline last 2015-08-22 19:03:54 -07:00
ricky cancro
2d6ddfe32e moved baseline alignment to a layout spec. 2015-08-22 19:03:54 -07:00
rcancro
9036ab8e7d new stack layout spec for text 2015-08-22 19:03:54 -07:00
ricky cancro
ef89f758bc flailing 2015-08-22 19:03:54 -07:00
ricky cancro
3fd241e87e fixed vertical spacing bug and typo 2015-08-22 19:03:54 -07:00
ricky cancro
cf428831a4 Added baseline spacing for vertical stack views. 2015-08-22 19:03:54 -07:00
ricky cancro
f289b3345a Add baseline support to ASStackLayoutSpec 2015-08-22 19:03:54 -07:00
rcancro
0ea276e3ab huy's comments 2015-08-22 18:47:16 -07:00
Huy Nguyen
f7f20ca8b7 preferredFrameSize should be used even if neither -layoutSpecThatFits: nor -calculateSizeThatFits: is overridden by subclassses. 2015-08-22 17:09:57 -07:00
Huy Nguyen
b93faab7f5 Improve relayout when constrained size of all nodes is changed:
- In -layoutSubviews of table and collection views, detect changes that cause a different constrained size for nodes, and trigger relayout immediately.
- Orientation change can be handled by this solution. So, no need to observe to its events.
- Update Kittens example to support iPad (easier to catch bugs on these devices) and add a title to navigation bar (looks a bit nicer).
2015-08-22 17:09:57 -07:00
rcancro
c06a6be188 ASLayoutSpec are temporarily mutable and have a more obj-c interface 2015-08-21 16:02:36 -07:00
ricky cancro
023ad89815 Renamed ASStackText... to ASBaselineStack... 2015-08-21 08:54:28 -07:00
rcancro
0a398301b0 fixed bug for baseline last 2015-08-20 20:43:18 -07:00
ricky cancro
f404231b35 moved baseline alignment to a layout spec. 2015-08-20 10:38:54 -07:00
rcancro
e7ffe67e3c new stack layout spec for text 2015-08-19 22:03:02 -07:00
ricky cancro
774d91653b flailing 2015-08-19 16:59:23 -07:00
Ethan Nagel
5dabd20b54 Merge branch 'master' into ASDisplayNode-init-perf
Conflicts:
	AsyncDisplayKit/ASDisplayNode.mm
2015-08-17 11:46:29 -07:00
appleguy
3983bf2289 Merge pull request #603 from nguyenhuy/improved_external_relayout
Improve relayout when constrained size of all nodes is changed
2015-08-15 22:07:50 -07:00
ricky cancro
11896904a2 fixed vertical spacing bug and typo 2015-08-15 09:45:14 -07:00
ricky cancro
d7564e18e5 Added baseline spacing for vertical stack views. 2015-08-15 08:17:43 -07:00
Ethan Nagel
176e4962bf Perform one-time initializations in +initialize when possible 2015-08-14 14:41:13 -07:00
Huy Nguyen
1313c11519 preferredFrameSize should be used even if neither -layoutSpecThatFits: nor -calculateSizeThatFits: is overridden by subclassses. 2015-08-13 07:53:00 +03:00
Huy Nguyen
7249661990 Improve relayout when constrained size of all nodes is changed:
- In -layoutSubviews of table and collection views, detect changes that cause a different constrained size for nodes, and trigger relayout immediately.
- Orientation change can be handled by this solution. So, no need to observe to its events.
- Update Kittens example to support iPad (easier to catch bugs on these devices) and add a title to navigation bar (looks a bit nicer).
2015-08-13 06:28:47 +03:00
ricky cancro
afffd9cfb2 Add baseline support to ASStackLayoutSpec 2015-08-12 16:55:12 -07:00
appleguy
d401b0e5f6 Merge pull request #593 from shannonma/merge_fork
Fixes for ASTextNode test, setNeedsDisplay and font loading failures
2015-08-08 18:55:00 -07:00
Huy Nguyen
e657bedd40 Automatically relayout cells after orientation changed. 2015-08-09 00:36:58 +03:00
appleguy
f97af9cb26 Merge pull request #594 from nguyenhuy/relayout_same_constrained_size
Support internal relayout
2015-08-04 12:27:30 -07:00
Roy Marmelstein
26202865ac Adding files that were missing from the framework target 2015-08-04 00:07:30 +02:00
Huy Nguyen
56768a837a - Support internal relayout, that is a relayout caused by internal layout changes, like subnodes re-arrangement and/or subnodes' size change. The constrained size applied to root node is unchanged.
- Update Kittens example to show how internal relayout is done.
2015-08-02 17:18:45 +03:00