182 Commits

Author SHA1 Message Date
tanliboy
6c0ffdf2e1 Merge pull request #135 from facebook/basic-init
Make ASNetworkImageNode Just Work.
2014-12-03 17:40:27 -08:00
Nadine Salter
93ce2b38a2 Make ASNetworkImageNode Just Work.
Use ASBasicImageDownloader by default -- you can now do...

  ASNetworkImageNode *imageNode = [[ASNetworkImageNode alloc] init];
  imageNode.URL = [NSURL URLWithString:@"..."];
  [self.view addSubview:imageNode.view];

...and it'll do the right thing.
2014-12-03 17:31:56 -08:00
Nadine Salter
cfe1fc6858 Merge pull request #130 from facebook/range-driver
Working-range-driven image loading.
2014-12-03 16:16:43 -08:00
Nadine Salter
79e65342b1 Working-range-driven image loading.
Add a `usleep(1.0 * USEC_PER_SEC)` delay to ASBasicImageDownloader and
slowly scroll through the Kittens sample project.  Without this patch,
you'll see that images only start downloading after their purple
placeholders appear onscreen.  With it, images can download and render
before you scroll them onscreen, thanks to the working range.
2014-12-02 19:23:23 -08:00
Nadine Salter
db085c49be Support realistic display delays (for debugging).
ASDISPLAYNODE_DELAY_DISPLAY unconditionally delays *all* attempts to
execute display blocks, even those that have been cancelled.  Fix that.

The DELAY_DISPLAY debugging tool is intended to simulate the effect of
expensive draw calls -- it lets you test your app's behaviour under
conditions potentially even worse than an iPhone 4.  Unfortunately, the
current simulation is unusably incorrect, as can be demonstrated by
repeatedly scrolling up and down in the Kittens example project.

ASRangeController enqueues asynchronous display of ASTableView cell
nodes when they enter the working range, and suspends their display when
they exit.  On a slow device, this performs as desired, limiting
expensive display computation to the space of the working range.  In
the DELAY_DISPLAY simulation, the suspended displays are as expensive as
the executed ones, so ASRangeController becomes unusably slow.
2014-12-02 19:04:49 -08:00
Nadine Salter
4cd110e630 Merge pull request #128 from facebook/cleanup
Miscellaneous cleanup.
2014-12-02 19:04:20 -08:00
Nadine Salter
1103f82a5c .preventOrCancelDisplay -> .displaySuspended.
Rename the ASDisplayNode property to match its _ASDisplayLayer
counterpart -- `displaySuspended` is more succinct and is a more
plausible name for a Cocoa BOOL property.
2014-12-02 18:06:11 -08:00
Nadine Salter
51f3073c33 ASDisplayNode.inWindow -> .inHierarchy.
This is a remnant from before `willAppear` and `didDisappear` were
renamed to better reflect their hierarchy-change status (being added to
the hierarchy != being visible).  May be useful for turians.
2014-12-02 18:06:11 -08:00
Nadine Salter
a30c087616 Clean up ASDisplayNode internal flags.
* Reorganise and rename `_flags` for clarity and consistency.
* Remove ambiguity between `implementsDisplay` and `hasClassDisplay`.
* Delete useless `hasWillDisplayAsyncLayer` check -- make it a simple
  subclass override point, as with `didDisplayAsyncLayer:`.
* Minor comment cleanup.
2014-12-02 18:06:11 -08:00
Nadine Salter
a53bc08eaf Merge pull request #127 from facebook/manual-display
Add -[ASDisplayNode display].
2014-12-02 17:49:55 -08:00
Ryan Nystrom
531be46dfd Cleaning up manual display per @secretiverhyme 2014-12-02 16:53:17 -08:00
Ryan Nystrom
8b0dbf7288 Manually display nodes
Added a sample project that will demonstrate how to manually display nodes. Removed the UIWindow hack that coupled display of nodes with Core Animation transactions.
2014-12-02 09:34:24 -08:00
Nadine Salter
5fc5adbb65 Merge pull request #117 from facebook/image-downloader
Simple, drop-in image downloader.
2014-12-01 14:49:44 -08:00
Nadine Salter
ab46377af2 Merge pull request #118 from nguyenhuy/custom_working_range_calculation
Support custom working-range logic for ASRangeController
2014-12-01 14:40:14 -08:00
Huy Nguyen
230520fe7e Support custom working-range logic. 2014-11-25 12:31:20 +02:00
Nadine Salter
8e2a207373 [travis] Only run tests on master; ./build.sh.
Don't consider the build broken if a feature branch is broken.

Move the actual build command to a separate script -- easier to read,
easier to maintain, and easier to run by hand.
2014-11-21 18:46:22 -08:00
Nadine Salter
8ecebcfe70 Convert Kittens sample project to ASNetworkImageNode.
Working-range-driven image loading.

(Note that ASNetworkImageNode and ASMultiplexImageNode haven't yet been
updated to work with the new `-reclaimMemory`-based working range
system, so this doesn't quite behave correctly yet.)
2014-11-21 18:40:18 -08:00
Nadine Salter
3c690bf9e5 ASBasicImageDownloader.
This is a simplistic, NSURLSession-based downloader object that
implements ASImageDownloaderProtocol and can be used with
ASMultiplexImageNode and ASNetworkImageNode.

(Closes #115.  NSURLSession should suffice for most usecases, and this
code should provide a good jumping-off point for a more-complex
implementation.)
2014-11-21 18:40:18 -08:00
Nadine Salter
18d52949e6 Missed a spot! 2014-11-21 17:48:29 -08:00
Nadine Salter
03156dceb6 ASNetworkImageNode ARC fixes. 2014-11-21 17:05:24 -08:00
Nadine Salter
964d109be6 ASImageNodeRoundBorderModificationBlock(). 2014-11-20 11:38:47 -08:00
Nadine Salter
1e929c3ead [travis] Drop iOS 8.0 tests. 2014-11-20 11:38:36 -08:00
Nadine Salter
5470b4cb74 [travis] Update build scripts for Xcode 6.1. 2014-11-20 11:34:07 -08:00
Nadine Salter
460b3582c9 Update umbrella header. 2014-11-18 18:21:41 -08:00
Nadine Salter
1eda1834e6 ASNetworkImageNode.
Initial open-source release of ASNetworkImageNode, a simple counterpart
to ASMultiplexImageNode.
2014-11-18 18:07:31 -08:00
Nadine Salter
38f8e63b01 Support fractional tuning parameters (fixes #112). 2014-11-18 14:15:01 -08:00
Nadine Salter
ee3aec42a2 Tidy ASCollectionView sample project. 2014-11-18 14:14:28 -08:00
appleguy
3f7dc75bb1 Merge pull request #101 from nguyenhuy/collection_view
Add ASCollectionView
2014-11-17 19:03:59 -08:00
Nadine Salter
f25bb07c6b Tweak ASMultiplexImageNode example assets. 2014-11-17 17:31:38 -08:00
Nadine Salter
18cb359ad0 ASMultiplexImageNode example project. 2014-11-17 17:25:46 -08:00
Nadine Salter
f0ad2accc6 Image assets for ASMultiplexImageNode example. 2014-11-17 16:55:30 -08:00
Nadine Salter
3c8d4e9517 ASMultiplexImageNode.
Initial open-source release of ASMultiplexImageNode.  Documentation and
example code forthcoming.

Note:  ASMultiplexImageNode requires Xcode 6 to compile.  Tests are now
compiled against the iOS 8 SDK and run on iOS 7.1 and iOS 8.
2014-11-17 15:02:17 -08:00
appleguy
40cee777a4 Merge pull request #111 from kylehickinson/master
Text node highlights fully fade in before fading out
2014-11-16 15:10:49 -08:00
Kyle Hickinson
7d7e4262ae Text node highlights fully fade in before fading out 2014-11-16 11:58:01 -05:00
Nadine Salter
0653f7387a Merge pull request #102 from aleclarson/patch-1
[ASDisplayNode convertRect:fromNode:] patch
2014-11-14 13:39:39 -08:00
Nadine Salter
2c7129f36a Merge pull request #103 from aleclarson/facebook
Add ASDisplayNode.cornerRadius
2014-11-14 13:19:13 -08:00
aleclarsoniv
c3cda17941 Add ASDisplayNode.cornerRadius 2014-11-13 17:56:05 -08:00
Alec Larson
73073215c6 [ASDisplayNode convertRect:fromNode:] hotfix
`_calculateTransformFromReferenceToTarget()` was being called incorrectly! 👍
2014-11-13 16:43:45 -08:00
Huy Nguyen
1f8b446b9c Add CollectionViewSample.
Update sample for more items.
2014-11-12 21:32:01 +02:00
Huy Nguyen
0eb7e5fc39 Update ASRangeController to support ASCollectionView and no longer assume vertical scrolling when calculates working range. 2014-11-12 21:27:26 +02:00
Huy Nguyen
a3bc21f29f Make constrained size for nodes adapt to ASCollectionView's scrolling direction. 2014-11-12 21:27:25 +02:00
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
189a8ac70a Merge pull request #92 from ocrickard/master
Fix untappable link in kittens example
2014-11-05 13:55:10 -08:00
Oliver Clark Rickard
5197e2490b Fix untappable link in kittens example 2014-11-05 16:28:12 -05: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
687b79eede Merge pull request #82 from mrh-is/patch-1
Use full method signatures in docs
2014-11-03 10:51:14 -08:00