69 Commits

Author SHA1 Message Date
Huy Nguyen
c42d41fb4c Provide ASCollectionView::calculatedSizeForNodeAtIndexPath:, to be used in custom UICollectionViewLayouts. 2014-11-12 21:27:25 +02:00
Huy Nguyen
3642d5773a Fix ASCollectionView::rangeControllerVisibleNodeIndexPaths: to return a sorted array. 2014-11-12 21:27:04 +02:00
Huy Nguyen
1df67c42b9 Implement ASCollectionView. Horizontal scrolling is not supported yet. 2014-11-12 21:25:56 +02:00
Huy Nguyen
8e0c49a909 Define ASCollectionView interface, ASCollectionViewDataSource and ASCollectionViewDelegate protocols. 2014-11-10 22:56:21 +02:00
Nadine Salter
6c9e499875 Minor ASRangeController improvements (fixes #81). 2014-11-07 15:51:55 -08:00
Nadine Salter
a3e78d1cee Support background colour and selection style on ASCellNodes.
Most UITableViewCell properties aren't useful in conjunction with
ASCellNode -- the system's UIView properties are unsupported for
performance reasons, and properties that configure them (e.g., content
indentation) don't affect custom node hierarchies.  This patch adds
support to _ASTableViewCell for the properties that *are* useful.

r=scottg
2014-11-03 17:45:40 -08:00
appleguy
8da4858c79 Merge pull request #75 from davbeck/master
Added tintColor convenience methods
2014-11-03 10:47:52 -08:00
appleguy
dee25b3177 Merge pull request #84 from bcunning/highlight-origin-fix
Fix text highlighting in UIScrollView
2014-11-03 10:42:02 -08:00
appleguy
a1f1ef7c10 Merge pull request #85 from bcunning/text-tap-delegate
Add point parameter to ASTextNode delegate methods
2014-11-03 10:40:52 -08:00
Raphaël MOR
3485541d01 Changed ASControlNodeEvent enum to NS_OPTIONS so that it can be used in swift 2014-11-03 10:22:45 +01:00
Ben Cunningham
32d005dc0b Add point parameter to ASTextNode delegate methods
Outfit ASTextNodeDelegate shouldHighlight and shouldLongPress methods
with a point parameter that describes the location of the relevant
touch.
2014-10-27 16:53:44 -07:00
Ben Cunningham
9d866f63e3 Fix text highlighting in UIScrollView
Highlight target layers with non-zero bounds.origin exhibited broken
text highlighting behavior. Highlights would appear offset by the
layer’s bounds.origin, and would not align with their target text. This
most often appeared in UIScrollView, where highlights would appear
incorrectly offset once the scroll view was scrolled. Fix by accounting
for bounds.origin in the calculations of the text overlay highlight
rects.
2014-10-27 16:46:01 -07:00
David Beck
4ed2120cfa Added tintColor convenience methods
tintColor is now forwarded to the underlying view, and much more importantly, the node is notified when the tintColor changes on the view.
2014-10-23 19:51:10 -07:00
Nadine Salter
0a78dfe43c Merge pull request #71 from rainypixels/row-animation
Fix #67
2014-10-22 14:59:58 -07:00
Nishant Kothary
1010224007 Fix #67 2014-10-22 13:59:22 -07:00
Nadine Salter
d0b7a015e8 Improve ASRangeController dealloc-safety.
(1) We can't size nodes without a delegate, and if our owning controller
has been deallocated, our delegate will be nil.  Handle this more
gracefully.

(2) Our teardown code needs to be executed on the main thread, but it's
conceivable that we might hit refcount 0 on a background queue.  Force
deallocation to occur on the main thread.

Closes #27.
2014-10-22 13:50:24 -07:00
Nadine Salter
72f9cb9d73 Remove ASImageNode thread affinity asserts (#57). 2014-10-22 13:50:02 -07:00
Nadine Salter
367b6da116 Use ASDisplayNodeScreenScale().
ASImageNode and ASHighlightOverlayLayer were both using
[[UIScreen mainScreen] scale] directly.  Bad.  No cookie.  Use
ASDisplayNodeScreenScale() instead.

(Also, regenerate Xcode project with Xcode 6 and current CocoaPods.)
2014-10-22 13:36:40 -07:00
Nadine Salter
d01fb5f418 Fix ASDisplayNodeScreenScale() warning. 2014-10-20 14:12:49 -07:00
Nadine Salter
2d26249cb0 Add -didExitHierarchy internal hook. 2014-10-20 13:47:31 -07:00
Nadine Salter
77412a2612 [appledoc] Fix hierarchy / memory docblocks. 2014-10-20 13:27:59 -07:00
Nadine Salter
47d70d39cd Add REQUIRES_SUPER annotations.
Closes #51.
2014-10-20 13:23:23 -07:00
Nadine Salter
4ce6820efb [appledoc] Document ASCellNode. 2014-10-17 15:53:11 -07:00
Nadine Salter
9225309c9a [appledoc] Fix all appledoc warnings. (#65) 2014-10-17 15:41:25 -07:00
Nadine Salter
f493b130ef [appledoc] Enable explicit crossrefs.
Fix warnings for existing `@see ...` crossrefs.
2014-10-17 15:41:25 -07:00
Nadine Salter
673c24946b [appledoc] Include subclassing header.
Use `--no-merge-categories` to prevent subclassing-only documentation
from appearing in the general API reference.  Use consistent category
names.
2014-10-17 14:50:27 -07:00
Nadine Salter
b2d4e2c717 Fix ASImageNode docblocks.
(#64, #65)
2014-10-17 13:43:01 -07:00
林藍東
faab914a08 Fix issue #61 2014-10-17 19:22:17 +08:00
Leo Lou
ccbbdba53e Fix documentation typos 2014-10-16 15:38:08 +08:00
Arnaud Coomans
b553678938 Fixes documentation for ASImageNode 2014-10-15 10:33:10 -07:00
appleguy
fd9f127fc9 Merge pull request #26 from toulouse/requiresSuper
Annotate -didLoad with an attribute (if supported) that will flag missing didLoad calls
2014-10-14 21:22:44 -07:00
appleguy
c81896a54b Merge pull request #41 from RCacheaux/RecursiveSetPreventOrCancelRasterizedSubNodes
Recursive Set Prevent or Cancel for Rasterized SubNodes
2014-10-14 21:14:10 -07:00
Scott Goodson
c61b1c294c Several bug fixes for the 1.0 release of AsyncDisplayKit
Fixes:
- Usage of UIScreen in -[ASDisplayNode init]
  (the offending individual will be prosecuted)
- #38: Proper teardown of nodes owned by ASTableView / ASRangeController
- #34: Fix infinite recursion in very rare subclassing scenario
- #30: Avoid animating cell and section additions to ASTableView
- #19: Set a more reasonable default for maximum display concurrency

r=nadi
2014-10-14 20:53:25 -07:00
Scott Goodson
f7d91bb877 Implement -reclaimMemory API and switch to manually controlled content clearing.
ASDisplayNode and several subclasses had previously cleared memory-heavy
objects like the backing store and text layout manager when the node's
view
or layer is removed from a visible heirarchy.  This works great in any
system
that uses a "working range", where exiting the range removes the node
from
the hierarchy and reclaiming memory at that time is important.
However, for
standard UIViewController patterns (unused in Paper), this behavior
causes
highly undesirable thrashing (leading to visible flashes & wasteful
re-rendering of content).

After this change, node subclasses should implement -reclaimMemory if
they
need to perform any other cleanup besides backing store destruction
when they
leave a working range or other scenario where memory reduction is
valuable.

To trigger this behavior, calling code should use
-recursivelyReclaimMemory.

r=nadi
2014-10-14 18:45:56 -07:00
Rene Cacheaux
0a6e36a239 Adds check for nodes who should rasterize descendants and opts to recurse down the subnode hierarchy in _recursiveSetPreventOrCancelDisplay. 2014-10-12 09:02:59 -05:00
Nadine Salter
0d017673d2 Merge pull request #39 from ianolito/fix-retain-cycles
Fix retain cycles in ASDisplayNode and ASTableView.
2014-10-10 12:03:13 -07:00
Ian Cloutier
41c3289a11 Fix retain cycles in ASDisplayNode and ASTableView 2014-10-09 19:00:38 -04:00
René Cacheaux
7ea0963b65 Wraps transaction async dispatches with autorelease pools. 2014-10-07 15:25:04 -05:00
Nadine Salter
0adab165ec Minor ASRangeController correctness fix. 2014-10-01 16:02:41 -07:00
Nadine Salter
aa7b545592 Provide default ASTextNode linkAttributeNames.
TextKit machinery automatically applies styling to text marked with the
NSLink attribute, but because ASTextNode is unaware of it, the node's
tap handler doesn't treat NSLinks as links.  Add NSLinkAttributeName to
the default linkAttributeNames property.
2014-10-01 15:55:16 -07:00
Nadine Salter
17fcca19ce s/richTextNode/textNode/g.
ASTextNode's delegate methods are all prefixed with "richTextNode".
Rename these to "textNode" for consistency.
2014-10-01 15:54:03 -07:00
Nadine Salter
a82364a54b Don't expose hierarchy notifs in public node API.
`-[ASDisplayNode willEnterHierarchy]` and `-didExitHierarchy` are
subclass hooks and should not be called directly -- doing so will
trigger an assertion!  Move these declarations to the subclassing
header.
2014-10-01 13:40:27 -07:00
Nadine Salter
20631a632f Fix unsafe unretained references in ASControlNode.
Fix regression from the ARC conversion.  Change the raw, unretained
pointers in ASControlNode to weak references.  Use NSMapTable instead of
the pointer-as-NSValue system.
2014-09-30 14:26:08 -07:00
Nadine Salter
af6c11ade7 Remove unused methods.
`-[ASDisplayNode addSubnodeAsynchronously::]` and
`-replaceSubnodeAsynchronously:::` are unused and confusingly increase
AsyncDisplayKit's API surface.  `-addSubnode:` and friends are
thread-safe and can be used on background threads, so removing these
methods does not constitute a decrease in functionality.
2014-09-29 14:55:26 -07:00
Nadine Salter
c51a58cd85 Update ASDisplayNodeInternal.h. 2014-09-26 15:17:46 -07:00
Nadine Salter
57092baad7 Work around rdar://18448377. Fixes #29. 2014-09-24 17:56:19 -07:00
Nadine Salter
b8afd06b37 Fix issue #28. 2014-09-24 14:23:42 -07:00
Nadine Salter
f77f63878d Fix issue #27. 2014-09-24 14:23:31 -07:00
Nadine Salter
d993730a7d Merge pull request #25 from toulouse/master
Minor ASTableView bugfix.
2014-09-23 16:42:06 -07:00
Nadine Salter
803585164c Convert AsyncDisplayKit to ARC. 2014-09-23 15:30:30 -07:00