- Add your own contributions to the next release on the line below this with your name.
- [ASDataController] Add capability to renew supplementary views (update map) when size change from zero to non-zero.Max Wang #842
- Make
ASPerformMainThreadDeallocation
visible in C. Adlai Holler - Add snapshot test for astextnode2. Max Wang #935
- Internal housekeeping on the async transaction (rendering) system. Adlai Holler
- Add new protocol
ASLocking
that extendsNSLocking
withtryLock
, and allows taking multiple locks safely. Adlai Holler - Make the main thread ivar deallocation system available to other classes. Plus a little optimization. See
ASMainThreadDeallocation.h
. Adlai Holler #959
- Fix pager node for interface coalescing. Max Wang #877
- [ASTextNode2] Upgrade lock safety by protecting all ivars (including rarely-changed ones).
- User FLT_EPSILON in ASCeilPixelValue and ASFloorPixelValue to help with floating point precision errors when computing layouts for 3x devices. Ricky Cancro #838
- Disable interface colescing and match to pre-colescing interface update behavior Max Wang #862
- [ASDisplayNode] Add safeAreaInsets, layoutMargins and related properties to ASDisplayNode, with full support for older OS versions Yevgen Pogribnyi #685
- [ASPINRemoteImageDownloader] Allow cache to provide animated image. Max Wang #850
- [tvOS] Fixes errors when building against tvOS SDK Alex Hill #728
- [ASDisplayNode] Add unit tests for layout z-order changes (with an open issue to fix).
- [ASWrapperCellNode] Introduce a new class allowing more control of UIKit passthrough cells.
- [ASDisplayNode] Consolidate main thread initialization and allow apps to invoke it manually instead of +load.
- [ASRunloopQueue] Introduce new runloop queue(ASCATransactionQueue) to coalesce Interface state update calls for view controller transitions.
- [ASRangeController] Fix stability of "minimum" rangeMode if the app has more than one layout before scrolling.
- Important ASDisplayNode's cornerRadius is a new thread-safe bridged property that should be preferred over CALayer's. Use the latter at your own risk! Huy Nguyen #749.
- [ASCellNode] Adds mapping for UITableViewCell focusStyle Alex Hill #727
- [ASNetworkImageNode] Fix capturing self in the block while loading image in ASNetworkImageNode. Denis Mororozov #777
- [ASTraitCollection] Add new properties of UITraitCollection to ASTraitCollection. Yevgen Pogribnyi
- [ASRectMap] Replace implementation of ASRectTable with a simpler one based on unordered_map.Scott Goodson #719
- [ASCollectionView] Add missing flags for ASCollectionDelegate Ilya Zheleznikov #718
- [ASNetworkImageNode] Deprecates .URLs in favor of .URL Garrett Moon #699
- [iOS11] Update project settings and fix errors Eke #676
- [ASCornerLayoutSpec] New layout spec class for declarative corner element layout. #657 huangkun
- [ASDisplayNode layout] Fix an issue that causes a pending layout to be applied multiple times. Huy Nguyen #695
- [ASDisplayNode layout] Fix an issue that sometimes causes a node's pending layout to not be applied. Huy Nguyen #792
- [ASScrollNode] Ensure the node respects the given size range while calculating its layout. #637 Huy Nguyen
- [ASScrollNode] Invalidate the node's calculated layout if its scrollable directions changed. Also add unit tests for the class. #637 Huy Nguyen
- Add new unit testing to the layout engine. Adlai Holler #424
- [Automatic Subnode Management] Nodes with ASM enabled now insert/delete their subnodes as soon as they enter preload state, so subnodes can start preloading right away. Huy Nguyen #706
- [ASCollectionNode] Added support for interactive item movement. Adlai Holler
- Added an experimental "no-copy" rendering API. See ASGraphicsContext.h for info. Adlai Holler
- Dropped support for iOS 8. Adlai Holler
- Added a configuration API – a unified place to turn on/off experimental Texture features. See
ASConfiguration.h
for info. Adlai Holler - Breaking Changes to ASNetworkImageNode: Adlai Holler
- Modified
ASImageDownloaderCompletion
to add an optionalid userInfo
field. Your custom downloader can passnil
. - Modified the last argument to
-[ASNetworkImageNodeDelegate imageNode:didLoadImage:info:]
method from a struct to an object of new classASNetworkImageLoadInfo
which includes other metadata about the load operation.
- Modified
- Removed +load static initializer from ASDisplayNode. Adlai Holler
- Optimized ASNetworkImageNode loading and resolved edge cases where the image provided to the delegate was not the image that was loaded. Adlai Holler #778
- Make
ASCellNode
tint color apply to table view cell accessories. Vladyslav Chapaev #764 - Fix ASTextNode2 is accessing backgroundColor off main while sizing / layout is happening. Michael Schneider #794
- Pass scrollViewWillEndDragging delegation through in ASIGListAdapterDataSource for IGListKit integration. #796
- Fix UIResponder handling with view backing ASDisplayNode. Michael Schneider #789
- Optimized thread-local storage by replacing pthread_specific with C11 thread-local variables. Adlai Holler #811
- Fixed a thread-sanitizer warning in ASTextNode. Adlai Holler #830
- Fix ASTextNode2 handling background color incorrectly. Adlai Holler #831
- [NoCopyRendering] Improved performance & fixed image memory not being tagged in Instruments. Adlai Holler #833
- Use
NS_RETURNS_RETAINED
macro to make our methods a tiny bit faster. Adlai Holler #843 ASDisplayNode, ASLayoutSpec, and ASLayoutElementStyle
now conform toNSLocking
. They act as recursive locks. Useful locking macros have been added asASThread.h
. Subclasses / client code can lock these objects but should be careful as usual when dealing with locks. Adlai Holler- Introduces
ASRecursiveUnfairLock
as an experiment to improve locking performance. Adlai Holler - Adds an experiment to shorten init time. Adlai Holler
- Adds a check that Texture is compiled with stdc++11 as specified by the podfile. gnu++11 can cause subtle issues that are currently being investigated. Adlai Holler
- Adds an experiment to call ASNetworkImageNode callbacks off main. Garrett Moon
- Prevent UITextView from updating contentOffset while deallocating Michael Schneider
- [ASCollectionNode/ASTableNode] Fix a crash occurs while remeasuring cell nodes. Huy Nguyen #917
- Fix an issue where ASConfigurationDelegate would not call out for "control" users. If set, it now receives events whenever an experimental feature decision point occurs, whether it's enabled or not. Adlai Holler
- [ASDisplayNode] Fix an issue that causes a node to sometimes return an outdated calculated size or size range. Huy Nguyen #808
- Add an experimental deallocation queue implementation that's more efficient. Adlai Holler
- Standardize property declaration style. Adlai Holler
- [ASTableView] Fix an issue that causes table view to use one of a cell's invalid layouts instead of generating a new one. Huy Nguyen #942
- [Xcode 9] Updated to require Xcode 9 (to fix warnings) Garrett Moon
- [ASCollectionView] Improve performance and behavior of rotation / bounds changes. Scott Goodson #431
- [ASCollectionView] Improve index space translation of Flow Layout Delegate methods. Scott Goodson
- [Animated Image] Adds support for animated WebP as well as improves GIF handling. #605 Garrett Moon
- [ASCollectionView] Check if batch fetching is needed if batch fetching parameter has been changed. #624 Garrett Moon
- [ASNetworkImageNode] New delegate callback to tell the consumer whether the image was loaded from cache or download. Adlai Holler
- [Layout] Fixes a deadlock in layout. #638 Garrett Moon
- Updated to be backwards compatible with Xcode 8. Adlai Holler
- [API CHANGES]
ASPerformMainThreadDeallocation
andASPerformBackgroundDeallocation
functions takeid *
instead ofid
and they're now more reliable. Also, in Swift,ASDeallocQueue.sharedDeallocationQueue() -> ASDeallocQueue.sharedDeallocationQueue
. Adlai Holler #651 - [Collection/Table] Added direct support for mapping section indexes between data spaces. Adlai Holler #651
- [ASVideoNode] Fix unreleased time observer. Flo Vouin
- [PINCache] Set a default .byteLimit to reduce disk usage and startup time. #595 Scott Goodson
- [ASNetworkImageNode] Fix deadlock in GIF handling. #582 Garrett Moon
- [ASDisplayNode] Add attributed versions of a11y label, hint and value. #554 Alexander Hüllmandel
- [ASCornerRounding] Introduce .cornerRoundingType: CALayer, Precomposited, or Clip Corners. Scott Goodson #465
- [Yoga] Add insertYogaNode:atIndex: method. Improve handling of relayouts. Scott Goodson
- [ASCollectionNode] Add -isProcessingUpdates and -onDidFinishProcessingUpdates: APIs. #522 Scott Goodson
- [Accessibility] Add .isAccessibilityContainer property, allowing automatic aggregation of children's a11y labels. [#468]Scott Goodson
- [ASImageNode] Enabled .clipsToBounds by default, fixing the use of .cornerRadius and clipping of GIFs. Scott Goodson #466
- Fix an issue in layout transition that causes it to unexpectedly use the old layout Huy Nguyen #464
- Add -[ASDisplayNode detailedLayoutDescription] property to aid debugging. Adlai Holler #476
- Fix an issue that causes calculatedLayoutDidChange being called needlessly. Huy Nguyen #490
- Negate iOS 11 automatic estimated table row heights. Christian Selig #485
- Add content inset and offset bridging properties to ASTableNode and ASCollectionNode. Deprecate related properties and methods in ASTableView and ASCollectionView Huy Nguyen #460 #560
- Remove re-entrant access to self.view when applying initial pending state. Adlai Holler #510
- Small improvements in ASCollectionLayout Huy Nguyen #509 #513 [#562]((TextureGroup#562)
- Fix retain cycle between ASImageNode and PINAnimatedImage Phil Larson #520
- Change the API for disabling logging from a compiler flag to a runtime C function ASDisableLogging(). Adlai Holler #528
- Table and collection views to consider content inset when calculating (default) element size range Huy Nguyen #525
- [ASEditableTextNode] added -editableTextNodeShouldBeginEditing to ASEditableTextNodeDelegate to mirror the corresponding method from UITextViewDelegate. Yan S. #535
- [Breaking] Remove APIs that have been deprecated since 2.0 and/or for at least 6 months Huy Nguyen #529
- [ASDisplayNode] Ensure
-displayWillStartAsynchronously:
and-displayDidFinish
are invoked on rasterized subnodes. Eric Scheers #532 - Fixed a memory corruption issue in the ASImageNode display system. Adlai Holler #555
- [Breaking] Rename ASCollectionGalleryLayoutSizeProviding to ASCollectionGalleryLayoutPropertiesProviding. Besides a fixed item size, it now can provide interitem and line spacings, as well as section inset Huy Nguyen #496 #533
- Deprecate
-[ASDisplayNode displayWillStart]
in favor of-displayWillStartAsynchronously:
Huy Nguyen [#536](https:/ /github.com/TextureGroup/pull/536) - Add support for URLs on ASNetworkImageNode. Garrett Moon
- [ASImageNode] Always dealloc images in a background queue Huy Nguyen #561
- Mark ASRunLoopQueue as drained if it contains only NULLs Cesar Estebanez #558
- Fix crashes caused by failing to unlock or destroy a static mutex while the app is being terminated Huy Nguyen
- Fix an issue where inserting/deleting sections could lead to inconsistent supplementary element behavior. Adlai Holler
- Overhaul logging and add activity tracing support. Adlai Holler
- Fix a crash where scrolling a table view after entering editing mode could lead to bad internal states in the table. Huy Nguyen #416
- Fix a crash in collection view that occurs if batch updates are performed while scrolling Huy Nguyen #378
- Some improvements in ASCollectionView Huy Nguyen #407
- Small refactors in ASDataController Huy Nguyen #443
- [ASCollectionView] Add delegate bridging and index space translation for missing UICollectionViewLayout properties. Scott Goodson
- [ASTextNode2] Add initial implementation for link handling. Scott Goodson #396
- [ASTextNode2] Provide compile flag to globally enable new implementation of ASTextNode: ASTEXTNODE_EXPERIMENT_GLOBAL_ENABLE. Scott Goodson #396
- Add ASCollectionGalleryLayoutDelegate - an async collection layout that makes same-size collections (e.g photo galleries, pagers, etc) fast and lightweight! Huy Nguyen #76 #451
- Fix an issue that causes infinite layout loop in ASDisplayNode after #428 Huy Nguyen #455
- Rename ASCellNode.viewModel to ASCellNode.nodeModel to reduce collisions with subclass properties implemented by clients. Adlai Holler #504
- [Yoga] Rewrite YOGA_TREE_CONTIGUOUS mode with improved behavior and cleaner integration Scott Goodson
- [ASTraitCollection] Convert ASPrimitiveTraitCollection from lock to atomic. Scott Goodson
- Add a synchronous mode to ASCollectionNode, for colletion view data source debugging. Hannah Troisi
- [ASDisplayNode+Layout] Add check for orphaned nodes after layout transition to clean up. #336. Scott Goodson
- Fixed an issue where GIFs with placeholders never had their placeholders uncover the GIF. Garrett Moon
- [Yoga] Implement ASYogaLayoutSpec, a simplified integration strategy for Yoga-powered layout calculation. Scott Goodson
- Fixed an issue where calls to setNeedsDisplay and setNeedsLayout would stop working on loaded nodes. Garrett Moon
- Migrated unit tests to OCMock 3.4 (from 2.2) and improved the multiplex image node tests. Adlai Holler
- Fix CollectionNode double-load issue. This should significantly improve performance in cases where a collection node has content immediately available on first layout i.e. not fetched from the network. Adlai Holler
- Overhaul layout flattening algorithm Huy Nguyen #395.
- [ASTextKitFontSizeAdjuster] Replace use of NSAttributedString's boundingRectWithSize:options:context: with NSLayoutManager's boundingRectForGlyphRange:inTextContainer: Ricky Cancro
- Add support for IGListKit post-removal-of-IGListSectionType, in preparation for IGListKit 3.0.0 release. Adlai Holler #49
- Fix
__has_include
check in ASLog.h Philipp Smorygo - Fix potential deadlock in ASControlNode Garrett Moon
- [Yoga Beta] Improvements to the experimental support for Yoga layout Scott Goodson
- Make cell node
indexPath
andsupplementaryElementKind
atomic so you can read from any thread. Adlai-Holler #49 - Update the rasterization API and un-deprecate it. Adlai Holler#82
- Simplified & optimized hashing code. Adlai Holler #86
- Improve the performance & safety of ASDisplayNode subnodes. Adlai Holler #223
- Move more properties from ASTableView, ASCollectionView to their respective node classes. Adlai Holler
- Remove finalLayoutElement Michael Schneider#96
- Add ASPageTable - A map table for fast retrieval of objects within a certain page Huy Nguyen
- Add new public
-supernodes
,-supernodesIncludingSelf
, and-supernodeOfClass:includingSelf:
methods. Adlai Holler#246 - Improve our handling supernode traversal to avoid loading layers and fix assertion failures you might hit in debug. Adlai Holler#246
- [ASDisplayNode] Pass drawParameter in rendering context callbacks Michael Schneider#248
- [ASTextNode] Move to class method of drawRect:withParameters:isCancelled:isRasterizing: for drawing Michael Schneider#232
- [ASDisplayNode] Remove instance:-drawRect:withParameters:isCancelled:isRasterizing: (https://github.com/maicki)[#232](https://github.com/TextureGroup/Texture/pull/232)
- [ASTextNode] Add an experimental new implementation. See
+[ASTextNode setExperimentOptions:]
. Adlai Holler#259 - [ASVideoNode] Added error reporing to ASVideoNode and it's delegate #260
- [ASCollectionNode] Fixed conversion of item index paths between node & view. Adlai Holler #262
- [Layout] Extract layout implementation code into it's own subcategories Michael Schneider#272
- [Fix] Fix a potential crash when cell nodes that need layout are deleted during the same runloop. Adlai Holler #279
- [Batch fetching] Add ASBatchFetchingDelegate that takes scroll velocity and remaining time into account Huy Nguyen #281
- [Fix] Fix a major regression in our image node contents caching. Adlai Holler #287
- [Fix] Fixed a bug where ASVideoNodeDelegate error reporting callback would crash an app because of not responding to selector. Sergey Petrachkov #291
- [IGListKit] Add IGListKit headers to public section of Xcode project Michael Schneider#286
- [Layout] Ensure -layout and -layoutDidFinish are called only if a node is loaded. Huy Nguyen #285
- [Layout Debugger] Small changes needed for the coming layout debugger Huy Nguyen #337