156 Commits

Author SHA1 Message Date
Scott Goodson
d899f12f70 [ASCellNode] Layout delegate should not be public as it must not be reset externally.
Do not call layout delegate method before the cell node is loaded.  This can happen if
application code calls -setNeedsLayout on the cell manually, and can confuse UIKit state
because we submit an empty batch update call on the next runloop.
2016-02-20 15:24:44 -08:00
appleguy
b75d6627bb Revert "Revert "Revert "[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods.""" 2016-02-19 23:26:29 -08:00
appleguy
2b10d84a2b Revert "fix scheduling issue that causes collectionView to not animate" 2016-02-19 23:26:12 -08:00
appleguy
f3300ded68 Merge pull request #1246 from Xinchi/master
[ASCellNode] Support monitoring scrollViewDidScroll events / visible amount of self
2016-02-19 22:25:10 -08:00
Max Gu
548b600504 Removing 2 unnecessary checks 2016-02-19 22:18:08 -08:00
Max Gu
115fc2b3da Adding visibility monitoring for ASTableVieww 2016-02-19 22:15:44 -08:00
Scott Goodson
a1061301e0 [ASDataController] Revert the reloadData optimizations again - need to fix apps relying on prior behavior.
The optimization seems correct now, but apps like Pinterest have some core code relying on edit operation
order that is actually not permitted by UIKit (and this diff) but were tolerated previously.  We will
re-land this once we have time to adapt the code.
2016-02-19 21:31:39 -08:00
appleguy
58a3ba5e8f Revert "Revert "[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods."" 2016-02-18 23:06:14 -08:00
appleguy
32aa333c21 Revert "[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods." 2016-02-18 19:50:06 -08:00
appleguy
33d4c8693d Merge pull request #1171 from lkzhao/ASDataController-reload
[ASCollectionView / ASTableView] Optimize reloadData and reloadSection: methods.
2016-02-18 17:36:14 -08:00
Luke Zhao
40791dd859 optimize reload data, reload sections, & move nodes performance & logic 2016-02-18 14:44:16 -08:00
Rahul Malik
19cc368d15 In addition to allocating nodes in the background, perform that operation concurrently in ASDataController 2016-02-17 22:30:58 -08:00
Scott Goodson
e1597f902a Increase default value for leadingScreensForBatching to 2.0, as 1.0 is not enough
for most network conditions / backend performance.
2016-02-16 22:19:27 -08:00
Rahul Malik
3e5daf4ccd Update data source protocols to make synchronous node creation api methods optional. 2016-02-09 22:47:43 -08:00
Michael Schneider
e49a5d992c Remove unused ASCollectionViewLayoutController import 2016-02-07 15:27:15 -08:00
Michael Schneider
026761c610 Rename ASRangeControllerBeta to ASRangeController and use exclusively 2016-02-07 15:03:24 -08:00
Michael Schneider
5d474bcb1a Remove ASDisplayNode -shouldUseNewRenderingRange method and ASRangeControllerStable class 2016-02-07 15:03:23 -08:00
Rahul Malik
c4f489b074 Address comments. 2016-02-04 16:56:29 -08:00
Rahul Malik
521c3fa1c1 Move ASCellNode allocation off the main thread by the addition of a node block
API in ASDataController. Move allocations and loaded node layouts to occur
during batch layout phase.
2016-02-04 10:38:59 -08:00
Huy Nguyen
19335d8c9e Add rangeMode APIs 2016-02-02 11:58:18 -08:00
Huy Nguyen
0f3f6f0dff Fix ASTableView to have None direction 2016-02-01 13:25:22 -08:00
Samuel Hsiung
39cd3afa0d [AS(Table|Collection)View] make scrollDirection transform aware 2016-01-28 16:42:46 -08:00
Levi McCallum
0e0a0f3280 Add a safety check for targetContentOffset possibly being NULL 2016-01-28 15:54:38 -08:00
Levi McCallum
6eb0521fa3 Observe decelerating scroll velocity for accurate direction reporting 2016-01-27 23:20:21 -08:00
Huy Nguyen
56c6bd681b Revert "Revert commit 83aaa46, thus bring 2e4d716 back"
This reverts commit 209425c22ce84ecbb7ab631753ec8fc34dd9cbb0.
2016-01-26 12:05:02 -08:00
Huy Nguyen
209425c22c Revert commit 83aaa46, thus bring 2e4d716 back 2016-01-24 23:38:05 -08:00
Scott Goodson
83aaa4637e Revert "ASDataController now handles reloadData more efficiently and notify its delegate once instead of a series of deletes and inserts"
This reverts commit 2e4d716e0b65465d9c65b5821668c38e5fa956c9.

Possible issue with this commit.
2016-01-22 20:33:33 -08:00
appleguy
999e93f0fa Merge pull request #1088 from aaronschubert0/ASTableView-Layout-bug-fix
[ASTableView] Rename _ASTableViewCellDelegate method.
2016-01-22 17:26:18 -08:00
Huy Nguyen
2e4d716e0b ASDataController now handles reloadData more efficiently and notify its delegate once instead of a series of deletes and inserts 2016-01-21 11:21:21 -08:00
Aaron Schubert
631d04a45b [ASTableView] Rename _ASTableViewCellDelegate method. 2016-01-20 09:37:54 +00:00
appleguy
5be14e41fd Merge pull request #1078 from aaronschubert0/ASTableView-Layout-bug-fix
[ASTableView] Ensure -[super layoutSubviews] is called before messaging delegate.
2016-01-19 19:21:19 -08:00
Scott Goodson
b989be6499 Restore full functionality of the display / data ranges when not using the Node variants of Table / Collection. 2016-01-19 18:30:01 -08:00
Aaron Schubert
7821a0aa19 Fixes bug #1077 2016-01-19 11:43:03 +00:00
Adlai Holler
5e72daa2e3 Pass node along in didEndDisplayingNode method 2016-01-12 15:42:37 -07:00
Scott Goodson
d45db5ac32 Disable creation of backing ASTable/CollectionNode for the *View varients (retain cycle). 2016-01-09 20:44:24 -08:00
Scott Goodson
984fe43997 [ASRangeController] Inspect delegate's ASInterfaceState to delay preloading beyond viewport until visible. 2016-01-03 19:14:07 -08:00
Scott Goodson
b273f358f5 [ASRangeController] Initial implementation of functional-style, ASInterfaceState-based range controller. 2016-01-01 00:48:44 -08:00
appleguy
50c97b2636 Revert "[ASCellNode] Forward pointInside to node implementation from UITableViewCell." 2015-12-30 23:42:18 -08:00
appleguy
cc15d74e67 Merge pull request #1008 from yury/bridge-uitableviewcell-pointinside
[ASCellNode] Forward pointInside to node implementation from UITableViewCell.
2015-12-29 23:25:48 -08:00
Scott Goodson
051f1f6cdd Use _ASDisplayLayer for both ASTableView and ASCollectionView. zeroContentInsets to fix UIKit. 2015-12-29 22:24:44 -08:00
yury
83960065ed Code style fix 2015-12-29 12:10:08 +03:00
yury
382326ea84 Bridge UITableViewCell pointInside to ASNodeCell
Allow ASNodeCell to specify pointInside of UITableViewCell.
This is very usefull, if ASNodeCell is presented as bubble aligned to
left or right (like Messages.app) and we need to be able to select row
only if user taps on bubble.
2015-12-28 16:11:50 +03:00
Scott Goodson
44feece701 Implement node-backing for ASTableView and ASCollectionView, with a strong back-pointer in these cases. 2015-12-26 23:05:34 -08:00
Scott Goodson
4b560a703a PR #1000 on GitHub! Provide a Beta API to enable the new, high efficiency render-ahead mechanism. 2015-12-26 16:34:44 -08:00
Scott Goodson
a2cf2a88e6 Overhaul header files / includes to eliminate circular references that Xcode 7 is angry about. 2015-12-25 19:22:00 -08:00
Scott Goodson
7ece41ff64 Delegate definition tweaks for Table and Collection; ensure Table tests run with ARC enabled. 2015-12-24 21:41:12 -08:00
Scott Goodson
c1640c7f59 Implement getter methods for new table / collection delegate / dataSource. Make ASTableView node-backed. 2015-12-24 18:02:52 -08:00
Scott Goodson
ca57059322 New ASDelegateProxy class to unify logic for Table & Collection forwarding. Fix dealloc-during-animation crash. 2015-12-23 20:01:52 -08:00
Scott Goodson
5745cfd0d8 Enable node detection for tableHeaderView and tableFooterView on ASTableView.
Ensure they behave as managed nodes - which prevents them from clearContents-ing
their subnodes when the table reloads, as they will be onscreen as long as the table is.
2015-12-18 21:58:58 -08:00
Scott Goodson
88b36f58e7 Ensure an empty array is returned if visibleNodes is called before any nodes are complete. 2015-12-06 21:45:46 -08:00