288 Commits

Author SHA1 Message Date
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
Levi McCallum
c8ea73b1fe Communicate conditionals clearly and document methods 2015-05-18 20:03:14 -07:00
appleguy
38ecededaa Merge pull request #453 from facebook/outlineBorderWidth
Set line width on path instead of context.
2015-05-17 17:03:41 -10:00
Scott Goodson
c4cd38bb6e Set line width on path instead of context.
I’m not confident why the original implementation doesn’t work, but
this version is stylistically cleaner regardless.  Resolves task #450.
2015-05-17 17:01:59 -10:00
appleguy
bf84d52bec Merge pull request #443 from eanagel/astableview-in-xib
Allow ASTableView to be loaded in a xib/storyboard
2015-05-16 23:00:50 -10:00
appleguy
079da308ef Merge pull request #437 from eanagel/ASDataController-release-nodes
ASDataController dealloc, ensure cell nodes are not in a superview
2015-05-16 22:49:55 -10:00
appleguy
33c5a72002 Merge pull request #432 from tonklon/master
ASTextNode expose exclusion paths
2015-05-16 22:19:47 -10:00
appleguy
d3e4db2c5c Merge pull request #444 from levi/patch-1
Fix typo in ASTableView
2015-05-13 22:55:24 -10:00
Ethan Nagel
d9acd7bb84 More fixes to catch/handle the delegate getting into an invalid state. These changes will allow setting tableView.asyncDataSource/delegate = nil. (Previously this would have no effect in dealloc thanks to ARC magic). Also added some defensive code to help identify the problem earlier. 2015-05-13 11:00:37 -07:00
Ethan Nagel
58402b6af0 change the order we tear things down in setAsyncDelegate/DataSource to avoid a random crash in UIScrollViewAccessibility. 2015-05-12 12:11:05 -07:00
Levi McCallum
1530ef2841 Prevent UITableView insertion/deletion animations by default
Fixes #292
2015-05-07 21:53:38 -07:00
Levi McCallum
4619457a1e Fix typo in ASTableView 2015-05-07 14:51:03 -07:00
Ethan Nagel
a38cf3ef37 Merge branch 'master' into astableview-in-xib 2015-05-05 09:31:31 -07:00
Ethan Nagel
c81f5d08fc refactor ASTAbleView initialization code so it also gets initialized when starting from initWithCoder: 2015-05-04 08:51:25 -07:00
Ethan Nagel
38f08c9bd8 support layers as well as views when doing ASDisplayCell cleanup (in case we add support for layer-backed ASDisplayCells in the future.) 2015-05-03 21:45:33 -07:00
appleguy
f248dbddd1 Merge pull request #405 from eanagel/reloadData-completion
Add (optional) completion handler for ASTableView and AsCollectionView reloadData
2015-05-03 19:25:06 -07:00
rlasante
04ec602500 Don’t retain an action’s target in ASControlNode
- addTarget:action:forControlEvents: should not retain the target. If it does
then there is a very high likelihood of a retain cycle.
2015-05-01 13:04:26 -04:00
Ethan Nagel
b40c1dbfc3 on ASDataController dealloc, ensure that loaded Cell nodes are not in the TableViewCell. For reasons I don't fully understand, this avoids a retain cycle with the currently displayed cells. 2015-04-22 13:57:25 -07:00
Tobias Klonk
2a29f81b3a ASTextNode expose exclusion paths
expose NSTextContainer's exclusionPaths property on ASTextNode to be able to exclude view areas from typesetting.

This implements #394
2015-04-20 10:21:01 +02:00
Ethan Nagel
68e2e068c3 Bug Fix - ASTableVie sometimes fails to render cell contents when scrolling programatically. Root cause is because we assume UITableView's indexPathsForVisibleRows return the new item to be displayed after tableView:willDisplayCell:forRowAtIndexPath: is called. This is not always true, especially when we are scrolling programmatically. Fix is to track this "pending" visible index path and return it along with the UITableView's indexPathsForVisibleRows in rangeControllerVisibleNodeIndexPaths:. 2015-04-17 16:09:44 -07:00
Ryan Nystrom
527a6228a9 Xcode 6.3 support 2015-04-08 16:35:10 -07:00
Michael Kuntscher
a92dd3189b Adds property for long press touch cancellation 2015-04-01 16:38:29 -07:00
Ian Cloutier
8699ab8ed7 Fix handling of pending nodes and placeholder layer 2015-03-30 18:59:40 -04:00
Ethan Nagel
abd725d8c1 update documentation for reloadData:completion 2015-03-27 18:14:05 -07:00
Ryan Nystrom
6ae17e55bc Merge pull request #403 from facebook/touch-forwarding
Forward touches to super instead of the superview
2015-03-26 21:11:53 -07:00
Ryan Nystrom
b6715b5cf9 Forward touches to super instead of the superview
fixes #402
2015-03-26 21:11:13 -07:00
Ryan Nystrom
29a360d562 Allow double-tap gestures on text nodes 2015-03-26 17:22:22 -07:00
Ethan Nagel
3f509dbd2f add completion block to reloadData methods 2015-03-26 16:32:44 -07:00
Nadine Salter
13e1c65d03 Fix ASImageNode -measure: / -setImage: deadlock.
Speculative fix for #380.  Calling `-[ASImageNode setImage:]` on a
background queue will take the image lock, then trampoline to the main
queue to invalidate calculatedSize and set needsDisplay without
releasing the lock.  Any other method call that takes the image lock on
the main queue can block on the trampoline completing -- deadlock.

Note that the trampoline is itself a clowny workaround for thread
affinity (#134) and should be removed.  With this patch applied,
ASImageNode's `-setImage:` and `-calculateSizeThatFits:` can still race:

1.  -setImage changes _image, then trampolines to main
2.  -calculateSizeThatFits measures _image
3.  trampoline completes, invalidates calculated size
4.  ???
5.  ~~profit!~~ 💥
2015-03-23 14:05:15 -07:00
Ryan Nystrom
814aff5a6d Merge pull request #388 from facebook/issue-383
Remove ASImageNode's tint property.
2015-03-23 13:59:20 -07:00
Nadine Salter
8164d63d29 Fix ASTextNode positioning for non-left alignment, part deux.
Apply the fix from #329 to `-setFrame:`.  Fixes #89.
2015-03-20 12:45:06 -07:00
Nadine Salter
7344cb98bb Remove ASImageNode's tint property.
ASImageNodeTint is inflexible (your options are "no tint" and "use
`[UIColor grayColor]`") and needlessly complicates the ASImageNode
implementation.  Use ASImageNodeTintColorModificationBlock() instead.
Closes #383.
2015-03-20 12:37:27 -07:00
Ryan Nystrom
cd3ad1c86f Enable nodes entering the visible range to display 2015-03-17 10:52:32 -07:00
Ryan Nystrom
fa2f36004b Merge pull request #375 from facebook/issue-374
Stretchy or mod block images
2015-03-15 15:59:38 -07:00
Ryan Nystrom
59c9fc8819 Stretchy or mod block images
fixes #374
2015-03-12 14:41:11 -07:00
Ryan Nystrom
1278fe2cf0 Merge pull request #373 from facebook/issue-349
Remove the nil-asyncDelegate proxy.
2015-03-12 14:29:28 -07:00
Nadine Salter
7fa5aa5e01 Merge pull request #371 from facebook/working-window
Working range window
2015-03-11 18:02:20 -07:00
Ryan Nystrom
0b19be0f85 Working range window
This brings back the concept of a window store for nodes that are in the working range (reverting #127). It turns out that due to the system architecture if there are nodes who fetch remote content (e.g. `ASNetworkImageNode`), calls to `-display` will occur before fetching has been completed. The next chance the nodes have to decode and display content is then when they are actually on the screen, thus defeating the purpose of a working range.

With the reintroduction of the working range window, nodes are "stored" in the window and when content is finished being fetched, CA triggers `-display` since they are part of a view hierarchy.

This can be tested in the Kittens project by insuring that before `ASRangeController` adds a node to [a visible view](https://github.com/facebook/AsyncDisplayKit/blob/master/AsyncDisplayKit/Details/ASRangeController.mm#L57) that the image node (with remote content) has set its layer's contents.
2015-03-11 17:59:03 -07:00
Nadine Salter
de14f220c3 Merge pull request #367 from facebook/issue-364
Thread safe creation and canceling of download tasks
2015-03-11 17:57:52 -07:00
Nadine Salter
a79b771a85 Remove the nil-asyncDelegate proxy.
Fixes #349.
2015-03-11 17:43:45 -07:00
Ryan Nystrom
db8bbcfd0e Thread safe creation and canceling of download tasks
fixes #364
2015-03-11 16:52:14 -07:00
Brian Amerige
9019233c68 Support Forwarding Responder-Chain Actions to Node from its View
Summary:
What it says on the tin. This allows Nodes to effectively participate in the responder chain.

Caveat: see note in implementation below. Would have been nice to use `-targetForAction:withSender:` the way the docs imply you can, but alas.

Test Plan: Observe a node in the responder chain get invoked to handle an action it implements.

Reviewers: bcunning, zsh, sma, jpasqualini, suv, nyn531, b3ll, aaronpang, kimon, grp, jonathan, rnystrom, nadi

Reviewed By: nadi

Subscribers: trunkagent, rnystrom

Differential Revision: https://phabricator.fb.com/D1894023

Signature: t1:1894023:1426026643:203945b6a7c318f6d2c9b94d876da61da31327bd
2015-03-11 14:37:17 -07:00
Ryan Nystrom
b6dea69070 Text placeholders snap to pixels 2015-03-11 13:56:12 -07:00
Nadine Salter
a40c8172ac Merge pull request #365 from facebook/issue-363
Range handlers use recursive actions
2015-03-09 12:37:17 -07:00
Ryan Nystrom
5e7755fac0 Range handlers use recursive actions
fixes #363
2015-03-09 12:33:02 -07:00
Nadine Salter
afb0aa41b7 Merge pull request #360 from lxcid/bug/block-copy
Block should always be declared using the copy attribute.
2015-03-07 14:47:57 -08:00