* Rolling back CI to known version for now
* Fix availability in tests
* Commenting out for now to see if it builds
* Fix up the Swift framework test
* Fix availability
* Added attributed versions of accessibilityLabel, accessibilityHint and accessibilityValue
* Follow conventions for property types
* Use curly braces
* Update changelog
* Follow conventions for property types in UIView+ASConvenience.h
* Add compatibility for Xcode 8
* Use isEqualToString instead of pointer comparison
* Only allocate attributed strings once. Use _setAttributedAccessibilityToViewAndProperty only for attributed properties.
I audited this more carefully and found some gaps in my PR from yesterday.
This also ensures the grouping and ordering of all the contents properties
is consistent across all of the places they appear.
In the future, it would be great to make the #define macros more sophisticated
so that we can add property bridging with fewer lines changed, and for
objects besides ASDisplayNode too!
This makes it much easier to use the ASCoreAnimationExtras method which offers by
far the most efficient way to display a stretchable image.
In the future, we should move that function to UIImage+ASConvenience or another
header where it can be more easily found and enjoyed!
Although apps could handle this before by setting the view's property in didLoad, it's
useful to bridge this property for setting during off-main initialization.
This change also makes RTL fully functional / automatic for Yoga layout users.
* Add a thread-safe layoutIfNeeded implementation to ASDisplayNode
* Trigger a layout pass when a display node enters preload state
- This ensures that all the subnodes have the correct size to preload their content.
* ASCollectionNode to trigger its initial data load when it enters preload state
* Minor change in _ASCollectionViewCell
* Layout sublayouts before dispatch to main for subclass hooks
* Update comments
* Don't wait until updates are committed when the collection node enters display state
* Same deal for table node
* Explain the layout trigger in ASDisplayNode