Commit Graph
4622 Commits
Author SHA1 Message Date
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 2ea7c541a6 When a new preferredFrameSize is set, previously calculated layout should be invalidated so that the size will be picked up in the next layout pass. 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 680305704a addressed comments and fixed tests 2015-08-21 21:03:40 -07:00
appleguy 80bbf79046 Merge pull request #620 from nguyenhuy/617_relayout_loading_nodes
Fix new constrained size is not applied to loading nodes
2015-08-21 21:03:30 -07:00
appleguy 80d8015240 Merge pull request #618 from garrettmoon/fixStaticLayoutWithCollectionView
Static layout doesn't properly set a height for collection view cells
2015-08-21 21:02:38 -07:00
rcancro c06a6be188 ASLayoutSpec are temporarily mutable and have a more obj-c interface 2015-08-21 16:02:36 -07:00
rcancro 608f62d487 fixed copyright 2015-08-21 10:08:15 -07:00
ricky cancro 023ad89815 Renamed ASStackText... to ASBaselineStack... 2015-08-21 08:54:28 -07:00
Huy Nguyen 641929c4e5 By default, cell nodes in table view should fill its width. So the min constrained width is updated to enforce this behaviour. 2015-08-21 17:43:40 +03:00
rcancro 0a398301b0 fixed bug for baseline last 2015-08-20 20:43:18 -07:00
rcancro ff8a7015a5 Merge branch 'baseline' of github.com:rcancro/AsyncDisplayKit into baseline 2015-08-20 20:24:17 -07:00
Huy Nguyen 97f323a8d9 Fix relayoutAllRows to trigger measurement (with the new constrained size) on all nodes, including loading ones. 2015-08-21 01:02:19 +03:00
Huy Nguyen 3e5d5c44cb Test relayout caused by a different constrained size for each and every node. All nodes, including loading ones, must be re-measured. 2015-08-21 00:59:21 +03:00
Ethan Nagel 36bac93a53 ensure class is not nil 2015-08-20 10:55:15 -07:00
Garrett Moon 6624b84c4c Static layout doesn't properly set a height for collection view cells
because their size.width / size.height isn't nan, but FLT_MAX.
2015-08-20 10:40:00 -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
Scott Goodson 60cf43766b Revert "Switch to use only layers for offscreen working range window."
There is an unsolved issue with this optimization that may cause crashes
in certain cases.  Reverting until it's properly resolved.  It doesn't
appear to be possible to cause the issue in the test apps used to develop it.

This reverts commit 3f982b5c9a.
2015-08-17 17:19:51 -07:00
appleguy bd9c9030d9 Merge pull request #610 from SRandazzo/606_sizezero_nil_text
Return CGSizeZero when computing the size of zero-length strings in ASTextNode.
2015-08-17 17:06:54 -07:00
appleguy 977c17b019 Merge pull request #614 from eanagel/reduce-UIColor-AttributedString-calls
Node init performance: Use shares UIColor/NSAttributedString instances
2015-08-17 17:03:11 -07:00
Ethan Nagel f7fb6dc4e7 Node init performance: Use share instances of UIColor and NSAttributedString for defaults. 2015-08-17 12:23:25 -07:00
Ethan Nagel 5dabd20b54 Merge branch 'master' into ASDisplayNode-init-perf
Conflicts:
	AsyncDisplayKit/ASDisplayNode.mm
2015-08-17 11:46:29 -07:00
Sal 05cb1d734d use attributedString.length instead of attributedString.string.length to check for empty strings 2015-08-16 18:24:20 -04: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
appleguy 33912dfc49 Merge pull request #608 from nguyenhuy/preferredFrameSize_bugs
Fix small bugs related to preferredFrameSize
2015-08-15 22:00:54 -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
Sal f06630c55a Add test coverage for ASTextNodeRenderer to validate nil and empty strings produce CGSizeZero 2015-08-13 13:57:54 -04:00
Sal 344c472349 Return CGSizeZero if ASTextNode's text length or attributed string is nil 2015-08-13 13:53:08 -04: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 c7043a193c When a new preferredFrameSize is set, previously calculated layout should be invalidated so that the size will be picked up in the next layout pass. 2015-08-13 07:52:42 +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
appleguy e93e97ad5f Merge pull request #607 from facebook/OptimizeWorkingRange
Optimization: use only layers for offscreen working range window.
2015-08-12 19:02:00 -07:00
Scott Goodson 3f982b5c9a Switch to use only layers for offscreen working range window.
ASDK layout and display calls don't depend on UIView in any way, so this
will reduce UIView-specific overhead from heirarchy manipulation.
2015-08-12 18:03:47 -07:00
ricky cancro afffd9cfb2 Add baseline support to ASStackLayoutSpec 2015-08-12 16:55:12 -07:00
appleguy 7c78dfdd5f Merge pull request #599 from nguyenhuy/different_constrained_size_per_node
Support different constrained size range per cell, for both tables and collections.
2015-08-12 15:54:55 -07:00
appleguy 57291fa544 Merge pull request #590 from rcancro/master
Add expectedSize to ASNetworkImageNode
2015-08-12 15:51:57 -07:00
ricky cancro 3bc692c938 comments 2015-08-12 15:29:26 -07:00
ricky cancro b4e6591ad8 call super to return preferredFrameSize. 2015-08-12 13:43:10 -07:00
Huy Nguyen a3c2dbf8cd Table and collection views' async data source can provide different constrained size per node. And because the size is of type ASSizeRange, it has a min size that is very helpful in many cases.. 2015-08-12 22:45:08 +03:00
appleguy 356ea9dc7f Merge pull request #604 from garrettmoon/fixCrashForNonFlowLayout
Don't assume flow layout when checking for insetSections
2015-08-12 12:26:20 -07:00
Garrett Moon 592e0301dd cache result of responds to selector 2015-08-12 11:46:46 -07:00
appleguy 91bffc8ca2 Merge pull request #602 from shannonma/merge_fork
Fix race in ASDisplayNodeRespectThreadAffinityOfNode
2015-08-12 11:40:21 -07:00
Garrett Moon 4f4a26d2a3 ASDK now supports non-flow layouts. We shouldn't be assuming a flow layout. 2015-08-12 11:33:40 -07:00
Shannon Ma c26e9c7e94 Fix race in ASDisplayNodeRespectThreadAffinityOfNode 2015-08-10 16:42:02 -07:00
rcancro 7cc996c190 Merge branch 'master' of github.com:rcancro/AsyncDisplayKit
# Conflicts:
#	AsyncDisplayKit/ASDisplayNode.h
#	AsyncDisplayKit/ASDisplayNode.mm
#	AsyncDisplayKit/ASImageNode.mm
#	examples/Kittens/Sample/KittenNode.mm
2015-08-09 16:43:08 -07:00
ricky cancro b58e8344c0 Add expectedSize to ASNetworkImageNode
ASNetworkImageNode defers to ASImageNode to return its calculatedSize. ASImageNode returns the size of its image. There is a good chance that ASNetworkImageNode hasn't downloaded its image yet when calculatedSize is called, so it returns a size of CGSizeZero.

On top of that, it is possible that the size of the image is not actually the size that we wish to display in our node.

I've added an "expectedImageSize" property that can be used to determine the calculatedSize of an ASNetworkImageNode.
2015-08-09 16:34:44 -07:00