changed DisplayTraits to TraitCollection

This commit is contained in:
rcancro
2016-05-05 14:01:19 -07:00
parent 51f79f3c6e
commit 9d622c7eac
35 changed files with 160 additions and 138 deletions

View File

@@ -111,8 +111,8 @@
05F20AA41A15733C00DCA68A /* ASImageProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = 05F20AA31A15733C00DCA68A /* ASImageProtocols.h */; settings = {ATTRIBUTES = (Public, ); }; };
18C2ED7E1B9B7DE800F627B3 /* ASCollectionNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C2ED7C1B9B7DE800F627B3 /* ASCollectionNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
18C2ED7F1B9B7DE800F627B3 /* ASCollectionNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C2ED7C1B9B7DE800F627B3 /* ASCollectionNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
18C2ED801B9B7DE800F627B3 /* ASCollectionNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = 18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.mm */; };
18C2ED831B9B7DE800F627B3 /* ASCollectionNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = 18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.mm */; };
18C2ED801B9B7DE800F627B3 /* ASCollectionNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.m */; };
18C2ED831B9B7DE800F627B3 /* ASCollectionNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.m */; };
1950C4491A3BB5C1005C8279 /* ASEqualityHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 1950C4481A3BB5C1005C8279 /* ASEqualityHelpers.h */; settings = {ATTRIBUTES = (Public, ); }; };
204C979E1B362CB3002B1083 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 204C979D1B362CB3002B1083 /* Default-568h@2x.png */; };
205F0E0F1B371875007741D0 /* UICollectionViewLayout+ASConvenience.h in Headers */ = {isa = PBXBuildFile; fileRef = 205F0E0D1B371875007741D0 /* UICollectionViewLayout+ASConvenience.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -324,12 +324,18 @@
9C55866C1BD54A3000B50E3A /* ASAsciiArtBoxCreator.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C5586671BD549CB00B50E3A /* ASAsciiArtBoxCreator.h */; settings = {ATTRIBUTES = (Public, ); }; };
9C6BB3B21B8CC9C200F13F52 /* ASStaticLayoutable.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C6BB3B01B8CC9C200F13F52 /* ASStaticLayoutable.h */; settings = {ATTRIBUTES = (Public, ); }; };
9C6BB3B31B8CC9C200F13F52 /* ASStaticLayoutable.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C6BB3B01B8CC9C200F13F52 /* ASStaticLayoutable.h */; settings = {ATTRIBUTES = (Public, ); }; };
9C70F2031CDA4EFA007D6C76 /* ASDisplayTraits.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C70F2011CDA4EFA007D6C76 /* ASDisplayTraits.h */; settings = {ATTRIBUTES = (Public, ); }; };
9C70F2041CDA4EFA007D6C76 /* ASDisplayTraits.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C70F2021CDA4EFA007D6C76 /* ASDisplayTraits.m */; };
9C70F2051CDA4F06007D6C76 /* ASDisplayTraits.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C70F2021CDA4EFA007D6C76 /* ASDisplayTraits.m */; };
9C70F2061CDA4F0C007D6C76 /* ASDisplayTraits.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C70F2011CDA4EFA007D6C76 /* ASDisplayTraits.h */; settings = {ATTRIBUTES = (Public, ); }; };
9C70F2031CDA4EFA007D6C76 /* ASTraitCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C70F2011CDA4EFA007D6C76 /* ASTraitCollection.h */; settings = {ATTRIBUTES = (Public, ); }; };
9C70F2041CDA4EFA007D6C76 /* ASTraitCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C70F2021CDA4EFA007D6C76 /* ASTraitCollection.m */; };
9C70F2051CDA4F06007D6C76 /* ASTraitCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C70F2021CDA4EFA007D6C76 /* ASTraitCollection.m */; };
9C70F2061CDA4F0C007D6C76 /* ASTraitCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C70F2011CDA4EFA007D6C76 /* ASTraitCollection.h */; settings = {ATTRIBUTES = (Public, ); }; };
9C70F2081CDAA3C6007D6C76 /* ASEnvironment.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9CFFC6BD1CCAC52B006A6476 /* ASEnvironment.mm */; };
9C70F2091CDABA36007D6C76 /* ASViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9CFFC6BF1CCAC73C006A6476 /* ASViewController.mm */; };
9C70F20A1CDBE949007D6C76 /* ASTableNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9CFFC6C11CCAC768006A6476 /* ASTableNode.mm */; };
9C70F20B1CDBE9A4007D6C76 /* ASDataController+Subclasses.h in Headers */ = {isa = PBXBuildFile; fileRef = 251B8EF61BBB3D690087C538 /* ASDataController+Subclasses.h */; };
9C70F20C1CDBE9B6007D6C76 /* ASCollectionDataController.h in Headers */ = {isa = PBXBuildFile; fileRef = 251B8EF21BBB3D690087C538 /* ASCollectionDataController.h */; };
9C70F20D1CDBE9CB007D6C76 /* ASDefaultPlayButton.h in Headers */ = {isa = PBXBuildFile; fileRef = AEB7B0181C5962EA00662EF4 /* ASDefaultPlayButton.h */; };
9C70F20E1CDBE9E5007D6C76 /* NSArray+Diffing.h in Headers */ = {isa = PBXBuildFile; fileRef = DBC452D91C5BF64600B16017 /* NSArray+Diffing.h */; };
9C70F20F1CDBE9FF007D6C76 /* ASLayoutManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B30BF6501C5964B0004FCD53 /* ASLayoutManager.h */; };
9C8221951BA237B80037F19A /* ASStackBaselinePositionedLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C8221931BA237B80037F19A /* ASStackBaselinePositionedLayout.h */; };
9C8221961BA237B80037F19A /* ASStackBaselinePositionedLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C8221931BA237B80037F19A /* ASStackBaselinePositionedLayout.h */; };
9C8221971BA237B80037F19A /* ASStackBaselinePositionedLayout.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C8221941BA237B80037F19A /* ASStackBaselinePositionedLayout.mm */; };
@@ -705,7 +711,7 @@
05EA6FE61AC0966E00E35788 /* ASSnapshotTestCase.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASSnapshotTestCase.mm; sourceTree = "<group>"; };
05F20AA31A15733C00DCA68A /* ASImageProtocols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASImageProtocols.h; sourceTree = "<group>"; };
18C2ED7C1B9B7DE800F627B3 /* ASCollectionNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASCollectionNode.h; sourceTree = "<group>"; };
18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASCollectionNode.mm; sourceTree = "<group>"; };
18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASCollectionNode.m; sourceTree = "<group>"; };
1950C4481A3BB5C1005C8279 /* ASEqualityHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASEqualityHelpers.h; sourceTree = "<group>"; };
204C979D1B362CB3002B1083 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-568h@2x.png"; path = "../Default-568h@2x.png"; sourceTree = "<group>"; };
205F0E0D1B371875007741D0 /* UICollectionViewLayout+ASConvenience.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UICollectionViewLayout+ASConvenience.h"; sourceTree = "<group>"; };
@@ -807,8 +813,8 @@
9C5586671BD549CB00B50E3A /* ASAsciiArtBoxCreator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASAsciiArtBoxCreator.h; path = AsyncDisplayKit/Layout/ASAsciiArtBoxCreator.h; sourceTree = "<group>"; };
9C5586681BD549CB00B50E3A /* ASAsciiArtBoxCreator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ASAsciiArtBoxCreator.m; path = AsyncDisplayKit/Layout/ASAsciiArtBoxCreator.m; sourceTree = "<group>"; };
9C6BB3B01B8CC9C200F13F52 /* ASStaticLayoutable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASStaticLayoutable.h; path = AsyncDisplayKit/Layout/ASStaticLayoutable.h; sourceTree = "<group>"; };
9C70F2011CDA4EFA007D6C76 /* ASDisplayTraits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASDisplayTraits.h; sourceTree = "<group>"; };
9C70F2021CDA4EFA007D6C76 /* ASDisplayTraits.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASDisplayTraits.m; sourceTree = "<group>"; };
9C70F2011CDA4EFA007D6C76 /* ASTraitCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASTraitCollection.h; sourceTree = "<group>"; };
9C70F2021CDA4EFA007D6C76 /* ASTraitCollection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASTraitCollection.m; sourceTree = "<group>"; };
9C8221931BA237B80037F19A /* ASStackBaselinePositionedLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASStackBaselinePositionedLayout.h; sourceTree = "<group>"; };
9C8221941BA237B80037F19A /* ASStackBaselinePositionedLayout.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASStackBaselinePositionedLayout.mm; sourceTree = "<group>"; };
9C8898BA1C738B9800D6B02E /* ASTextKitFontSizeAdjuster.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ASTextKitFontSizeAdjuster.mm; path = TextKit/ASTextKitFontSizeAdjuster.mm; sourceTree = "<group>"; };
@@ -1043,7 +1049,7 @@
055F1A3A19ABD43F004DAFF1 /* ASCellNode.h */,
AC6456071B0A335000CF11B8 /* ASCellNode.mm */,
18C2ED7C1B9B7DE800F627B3 /* ASCollectionNode.h */,
18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.mm */,
18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.m */,
B13CA0FF1C52004900E031AB /* ASCollectionNode+Beta.h */,
AC3C4A4F1A1139C100143C57 /* ASCollectionView.h */,
AC3C4A501A1139C100143C57 /* ASCollectionView.mm */,
@@ -1231,8 +1237,8 @@
205F0E0D1B371875007741D0 /* UICollectionViewLayout+ASConvenience.h */,
205F0E0E1B371875007741D0 /* UICollectionViewLayout+ASConvenience.m */,
058D09FF195D050800B7D73C /* UIView+ASConvenience.h */,
9C70F2011CDA4EFA007D6C76 /* ASDisplayTraits.h */,
9C70F2021CDA4EFA007D6C76 /* ASDisplayTraits.m */,
9C70F2011CDA4EFA007D6C76 /* ASTraitCollection.h */,
9C70F2021CDA4EFA007D6C76 /* ASTraitCollection.m */,
);
path = Details;
sourceTree = "<group>";
@@ -1530,7 +1536,7 @@
257754A81BEE44CD00737CA5 /* ASTextKitContext.h in Headers */,
DB55C2611C6408D6004EDCF5 /* _ASTransitionContext.h in Headers */,
464052221A3F83C40061C0BA /* ASFlowLayoutController.h in Headers */,
9C70F2031CDA4EFA007D6C76 /* ASDisplayTraits.h in Headers */,
9C70F2031CDA4EFA007D6C76 /* ASTraitCollection.h in Headers */,
257754AF1BEE44CD00737CA5 /* ASTextKitRenderer+TextChecking.h in Headers */,
058D0A57195D05DC00B7D73C /* ASHighlightOverlayLayer.h in Headers */,
058D0A7C195D05F900B7D73C /* ASImageNode+CGExtras.h in Headers */,
@@ -1615,6 +1621,7 @@
B35062481B010EFD0018CF92 /* _AS-objc-internal.h in Headers */,
69F10C871C84C35D0026140C /* ASRangeControllerUpdateRangeProtocol+Beta.h in Headers */,
B350623C1B010EFD0018CF92 /* _ASAsyncTransaction.h in Headers */,
9C70F20D1CDBE9CB007D6C76 /* ASDefaultPlayButton.h in Headers */,
68355B411CB57A6C001D4E68 /* ASImageContainerProtocolCategories.h in Headers */,
7630FFA81C9E267E007A7C0E /* ASVideoNode.h in Headers */,
B350623F1B010EFD0018CF92 /* _ASAsyncTransactionContainer.h in Headers */,
@@ -1651,6 +1658,7 @@
AC026B701BD57DBF00BBC17E /* _ASHierarchyChangeSet.h in Headers */,
B35061F31B010EFD0018CF92 /* ASCellNode.h in Headers */,
34EFC7631B701CBF00AD841F /* ASCenterLayoutSpec.h in Headers */,
9C70F20C1CDBE9B6007D6C76 /* ASCollectionDataController.h in Headers */,
18C2ED7F1B9B7DE800F627B3 /* ASCollectionNode.h in Headers */,
9C8898BD1C738BB800D6B02E /* ASTextKitFontSizeAdjuster.h in Headers */,
B35061F51B010EFD0018CF92 /* ASCollectionView.h in Headers */,
@@ -1660,6 +1668,7 @@
92074A621CC8BA1900918F75 /* ASImageNode+tvOS.h in Headers */,
B35061F71B010EFD0018CF92 /* ASCollectionViewProtocols.h in Headers */,
DE6EA3231C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h in Headers */,
9C70F20F1CDBE9FF007D6C76 /* ASLayoutManager.h in Headers */,
B35061FA1B010EFD0018CF92 /* ASControlNode+Subclasses.h in Headers */,
B35061F81B010EFD0018CF92 /* ASControlNode.h in Headers */,
B35062171B010EFD0018CF92 /* ASDataController.h in Headers */,
@@ -1667,7 +1676,7 @@
34EFC75B1B701BAF00AD841F /* ASDimension.h in Headers */,
A37320101C571B740011FC94 /* ASTextNode+Beta.h in Headers */,
DBABFAFC1C6A8D2F0039EA4A /* _ASTransitionContext.h in Headers */,
9C70F2061CDA4F0C007D6C76 /* ASDisplayTraits.h in Headers */,
9C70F2061CDA4F0C007D6C76 /* ASTraitCollection.h in Headers */,
254C6B801BF94DF4003EC431 /* ASEqualityHashHelpers.h in Headers */,
B350624F1B010EFD0018CF92 /* ASDisplayNode+DebugTiming.h in Headers */,
B35061FD1B010EFD0018CF92 /* ASDisplayNode+Subclasses.h in Headers */,
@@ -1686,6 +1695,7 @@
B35062021B010EFD0018CF92 /* ASImageNode.h in Headers */,
B350621F1B010EFD0018CF92 /* ASImageProtocols.h in Headers */,
430E7C901B4C23F100697A4C /* ASIndexPath.h in Headers */,
9C70F20B1CDBE9A4007D6C76 /* ASDataController+Subclasses.h in Headers */,
34EFC75F1B701C8600AD841F /* ASInsetLayoutSpec.h in Headers */,
34EFC75D1B701BE900AD841F /* ASInternalHelpers.h in Headers */,
34EFC7671B701CD900AD841F /* ASLayout.h in Headers */,
@@ -1721,6 +1731,7 @@
25E327571C16819500A2170C /* ASPagerNode.h in Headers */,
B35062551B010EFD0018CF92 /* ASSentinel.h in Headers */,
9C8221961BA237B80037F19A /* ASStackBaselinePositionedLayout.h in Headers */,
9C70F20E1CDBE9E5007D6C76 /* NSArray+Diffing.h in Headers */,
9C49C3701B853961000B0DD5 /* ASStackLayoutable.h in Headers */,
DE040EF91C2B40AC004692FF /* ASCollectionViewFlowLayoutInspector.h in Headers */,
34EFC7701B701CFA00AD841F /* ASStackLayoutDefines.h in Headers */,
@@ -1987,7 +1998,7 @@
AC6456091B0A335000CF11B8 /* ASCellNode.mm in Sources */,
DE8BEAC31C2DF3FC00D57C12 /* ASDelegateProxy.m in Sources */,
ACF6ED1D1B17843500DA7C62 /* ASCenterLayoutSpec.mm in Sources */,
18C2ED801B9B7DE800F627B3 /* ASCollectionNode.mm in Sources */,
18C2ED801B9B7DE800F627B3 /* ASCollectionNode.m in Sources */,
92DD2FE41BF4B97E0074C9DD /* ASMapNode.mm in Sources */,
DBC452DC1C5BF64600B16017 /* NSArray+Diffing.m in Sources */,
AC3C4A521A1139C100143C57 /* ASCollectionView.mm in Sources */,
@@ -2055,7 +2066,7 @@
ACF6ED521B17847A00DA7C62 /* ASStackUnpositionedLayout.mm in Sources */,
257754A61BEE44CD00737CA5 /* ASTextKitAttributes.mm in Sources */,
81EE38501C8E94F000456208 /* ASRunLoopQueue.mm in Sources */,
9C70F2041CDA4EFA007D6C76 /* ASDisplayTraits.m in Sources */,
9C70F2041CDA4EFA007D6C76 /* ASTraitCollection.m in Sources */,
92074A691CC8BADA00918F75 /* ASControlNode+tvOS.m in Sources */,
ACF6ED321B17843500DA7C62 /* ASStaticLayoutSpec.mm in Sources */,
AC026B6B1BD57D6F00BBC17E /* ASChangeSetDataController.m in Sources */,
@@ -2148,9 +2159,10 @@
B35062161B010EFD0018CF92 /* ASBatchContext.mm in Sources */,
AC47D9421B3B891B00AAEE9D /* ASCellNode.mm in Sources */,
34EFC7641B701CC600AD841F /* ASCenterLayoutSpec.mm in Sources */,
18C2ED831B9B7DE800F627B3 /* ASCollectionNode.mm in Sources */,
18C2ED831B9B7DE800F627B3 /* ASCollectionNode.m in Sources */,
E55D86331CA8A14000A0C26F /* ASLayoutable.mm in Sources */,
68B8A4E41CBDB958007E4543 /* ASWeakProxy.m in Sources */,
9C70F20A1CDBE949007D6C76 /* ASTableNode.mm in Sources */,
69CB62AE1CB8165900024920 /* _ASDisplayViewAccessiblity.mm in Sources */,
B35061F61B010EFD0018CF92 /* ASCollectionView.mm in Sources */,
509E68641B3AEDB7009B9150 /* ASCollectionViewLayoutController.mm in Sources */,
@@ -2208,7 +2220,7 @@
34EFC7721B701D0300AD841F /* ASStackLayoutSpec.mm in Sources */,
34EFC7761B701D2A00AD841F /* ASStackPositionedLayout.mm in Sources */,
7AB338661C55B3420055FDE8 /* ASRelativeLayoutSpec.mm in Sources */,
9C70F2051CDA4F06007D6C76 /* ASDisplayTraits.m in Sources */,
9C70F2051CDA4F06007D6C76 /* ASTraitCollection.m in Sources */,
34EFC7781B701D3100AD841F /* ASStackUnpositionedLayout.mm in Sources */,
DE84918E1C8FFF9F003D89E9 /* ASRunLoopQueue.mm in Sources */,
AC026B6C1BD57D6F00BBC17E /* ASChangeSetDataController.m in Sources */,

View File

@@ -248,6 +248,6 @@
[self.view reloadDataImmediately];
}
ASEnvironmentDisplayTraitsCollectionTableSetEnvironmentState(_environmentStateLock)
ASEnvironmentCollectionTableSetEnvironmentState(_environmentStateLock)
@end

View File

@@ -22,7 +22,7 @@
#import "_ASCoreAnimationExtras.h"
#import "ASDisplayNodeLayoutContext.h"
#import "ASDisplayNodeExtras.h"
#import "ASDisplayTraits.h"
#import "ASTraitCollection.h"
#import "ASEqualityHelpers.h"
#import "ASRunLoopQueue.h"
#import "ASEnvironmentInternal.h"
@@ -2721,10 +2721,10 @@ static const char *ASDisplayNodeDrawingPriorityKey = "ASDrawingPriority";
ASEnvironmentLayoutOptionsForwarding
ASEnvironmentLayoutExtensibilityForwarding
- (ASDisplayTraits *)displayTraits
- (ASTraitCollection *)asyncTraitCollection
{
ASDN::MutexLocker l(_propertyLock);
return [ASDisplayTraits displayTraitsWithASEnvironmentDisplayTraits:_environmentState.displayTraits];
return [ASTraitCollection displayTraitsWithASEnvironmentTraitCollection:_environmentState.traitCollection];
}
#if TARGET_OS_TV

View File

@@ -163,6 +163,6 @@
[self.view clearFetchedData];
}
ASEnvironmentDisplayTraitsCollectionTableSetEnvironmentState(_environmentStateLock)
ASEnvironmentCollectionTableSetEnvironmentState(_environmentStateLock)
@end

View File

@@ -9,12 +9,12 @@
#import <UIKit/UIKit.h>
#import <AsyncDisplayKit/ASDisplayNode.h>
@class ASDisplayTraits;
@class ASTraitCollection;
NS_ASSUME_NONNULL_BEGIN
typedef ASDisplayTraits * _Nonnull (^ASDisplayTraitsForTraitCollectionBlock)(UITraitCollection *traitCollection);
typedef ASDisplayTraits * _Nonnull (^ASDisplayTraitsForTraitWindowSizeBlock)(CGSize windowSize);
typedef ASTraitCollection * _Nonnull (^ASDisplayTraitsForTraitCollectionBlock)(UITraitCollection *traitCollection);
typedef ASTraitCollection * _Nonnull (^ASDisplayTraitsForTraitWindowSizeBlock)(CGSize windowSize);
@interface ASViewController<__covariant DisplayNodeType : ASDisplayNode *> : UIViewController

View File

@@ -11,7 +11,7 @@
#import "ASDimension.h"
#import "ASDisplayNode+FrameworkPrivate.h"
#import "ASDisplayNode+Beta.h"
#import "ASDisplayTraits.h"
#import "ASTraitCollection.h"
#import "ASEnvironmentInternal.h"
#import "ASRangeControllerUpdateRangeProtocol+Beta.h"
@@ -51,7 +51,7 @@
- (void)dealloc
{
if (_displayTraitsContext != nil) {
ASDisplayTraitsClearDisplayContext(self.node);
ASEnvironmentTraitCollectionClearDisplayContext(self.node);
_displayTraitsContext = nil;
}
}
@@ -142,44 +142,44 @@
return _node.interfaceState;
}
#pragma mark - ASDisplayTraits
#pragma mark - ASEnvironmentTraitCollection
- (ASEnvironmentDisplayTraits)displayTraitsForTraitCollection:(UITraitCollection *)traitCollection
- (ASEnvironmentTraitCollection)displayTraitsForTraitCollection:(UITraitCollection *)traitCollection
{
if (self.overrideDisplayTraitsWithTraitCollection) {
ASDisplayTraits *displayTraits = self.overrideDisplayTraitsWithTraitCollection(traitCollection);
displayTraits.isMutable = NO;
return [displayTraits environmentDisplayTraits];
ASTraitCollection *asyncTraitCollection = self.overrideDisplayTraitsWithTraitCollection(traitCollection);
asyncTraitCollection.isMutable = NO;
return [asyncTraitCollection environmentTraitCollection];
}
ASEnvironmentDisplayTraits displayTraits = ASEnvironmentDisplayTraitsFromUITraitCollection(traitCollection);
displayTraits.displayContext = _displayTraitsContext;
return displayTraits;
ASEnvironmentTraitCollection asyncTraitCollection = ASEnvironmentTraitCollectionFromUITraitCollection(traitCollection);
asyncTraitCollection.displayContext = _displayTraitsContext;
return asyncTraitCollection;
}
- (ASEnvironmentDisplayTraits)displayTraitsForWindowSize:(CGSize)windowSize
- (ASEnvironmentTraitCollection)displayTraitsForWindowSize:(CGSize)windowSize
{
if (self.overrideDisplayTraitsWithWindowSize) {
ASDisplayTraits *displayTraits = self.overrideDisplayTraitsWithWindowSize(windowSize);
displayTraits.isMutable = NO;
return [displayTraits environmentDisplayTraits];
ASTraitCollection *traitCollection = self.overrideDisplayTraitsWithWindowSize(windowSize);
traitCollection.isMutable = NO;
return [traitCollection environmentTraitCollection];
}
return self.node.environmentState.displayTraits;
return self.node.environmentState.traitCollection;
}
- (void)progagateNewDisplayTraits:(ASEnvironmentDisplayTraits)displayTraits
- (void)progagateNewDisplayTraits:(ASEnvironmentTraitCollection)traitCollection
{
ASEnvironmentState environmentState = self.node.environmentState;
ASEnvironmentDisplayTraits oldDisplayTraits = environmentState.displayTraits;
ASEnvironmentTraitCollection oldTraitCollection = environmentState.traitCollection;
if (ASEnvironmentDisplayTraitsIsEqualToASEnvironmentDisplayTraits(displayTraits, oldDisplayTraits) == NO) {
environmentState.displayTraits = displayTraits;
if (ASEnvironmentTraitCollectionIsEqualToASEnvironmentTraitCollection(traitCollection, oldTraitCollection) == NO) {
environmentState.traitCollection = traitCollection;
[self.node setEnvironmentState:environmentState];
[self.node setNeedsLayout];
NSArray<id<ASEnvironment>> *children = [self.node children];
for (id<ASEnvironment> child in children) {
ASEnvironmentStatePropagateDown(child, environmentState.displayTraits);
ASEnvironmentStatePropagateDown(child, environmentState.traitCollection);
}
}
}
@@ -188,24 +188,24 @@
{
[super traitCollectionDidChange:previousTraitCollection];
ASEnvironmentDisplayTraits displayTraits = [self displayTraitsForTraitCollection:self.traitCollection];
[self progagateNewDisplayTraits:displayTraits];
ASEnvironmentTraitCollection traitCollection = [self displayTraitsForTraitCollection:self.traitCollection];
[self progagateNewDisplayTraits:traitCollection];
}
- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
ASEnvironmentDisplayTraits displayTraits = [self displayTraitsForTraitCollection:self.traitCollection];
[self progagateNewDisplayTraits:displayTraits];
ASEnvironmentTraitCollection traitCollection = [self displayTraitsForTraitCollection:newCollection];
[self progagateNewDisplayTraits:traitCollection];
}
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
ASEnvironmentDisplayTraits displayTraits = [self displayTraitsForWindowSize:size];
[self progagateNewDisplayTraits:displayTraits];
ASEnvironmentTraitCollection traitCollection = [self displayTraitsForWindowSize:size];
[self progagateNewDisplayTraits:traitCollection];
}
@end

View File

@@ -525,7 +525,7 @@ static void *kASSizingQueueContext = &kASSizingQueueContext;
ASCellNodeBlock nodeBlockPropagatingDisplayTraits = ^{
ASCellNode *cellNode = nodeBlock();
id<ASEnvironment> environment = [self.environmentDelegate dataControllerEnvironment];
ASEnvironmentStatePropagateDown(cellNode, [environment environmentState].displayTraits);
ASEnvironmentStatePropagateDown(cellNode, [environment environmentState].traitCollection);
return cellNode;
};

View File

@@ -63,7 +63,7 @@ typedef struct ASEnvironmentHierarchyState {
#pragma mark - ASEnvironmentDisplayTraits
typedef struct ASEnvironmentDisplayTraits {
typedef struct ASEnvironmentTraitCollection {
CGFloat displayScale;
UIUserInterfaceSizeClass horizontalSizeClass;
UIUserInterfaceIdiom userInterfaceIdiom;
@@ -85,25 +85,25 @@ typedef struct ASEnvironmentDisplayTraits {
// As an added precaution ASDisplayTraitsClearDisplayContext is called from ASVC's desctructor
// which will propagate a nil displayContext to its subnodes.
id __unsafe_unretained displayContext;
} ASEnvironmentDisplayTraits;
} ASEnvironmentTraitCollection;
extern void ASDisplayTraitsClearDisplayContext(id<ASEnvironment> rootEnvironment);
extern void ASEnvironmentTraitCollectionClearDisplayContext(id<ASEnvironment> rootEnvironment);
extern ASEnvironmentDisplayTraits ASEnvironmentDisplayTraitsFromUITraitCollection(UITraitCollection *traitCollection);
extern BOOL ASEnvironmentDisplayTraitsIsEqualToASEnvironmentDisplayTraits(ASEnvironmentDisplayTraits displayTraits0, ASEnvironmentDisplayTraits displayTraits1);
extern ASEnvironmentTraitCollection ASEnvironmentTraitCollectionFromUITraitCollection(UITraitCollection *traitCollection);
extern BOOL ASEnvironmentTraitCollectionIsEqualToASEnvironmentTraitCollection(ASEnvironmentTraitCollection displayTraits0, ASEnvironmentTraitCollection displayTraits1);
#pragma mark - ASEnvironmentState
typedef struct ASEnvironmentState {
struct ASEnvironmentHierarchyState hierarchyState;
struct ASEnvironmentLayoutOptionsState layoutOptionsState;
struct ASEnvironmentDisplayTraits displayTraits;
struct ASEnvironmentTraitCollection traitCollection;
} ASEnvironmentState;
extern ASEnvironmentState ASEnvironmentStateMakeDefault();
ASDISPLAYNODE_EXTERN_C_END
@class ASDisplayTraits;
@class ASTraitCollection;
#pragma mark - ASEnvironment
@@ -131,7 +131,7 @@ ASDISPLAYNODE_EXTERN_C_END
- (BOOL)supportsTraitsCollectionPropagation;
/// Returns an NSObject-representation of the environment's ASEnvironmentDisplayTraits
- (ASDisplayTraits *)displayTraits;
- (ASTraitCollection *)asyncTraitCollection;
@end
@@ -142,18 +142,18 @@ ASDISPLAYNODE_EXTERN_C_END
// If there is any new downward propagating state, it should be added to this define.
//
// This logic is used in both ASCollectionNode and ASTableNode
#define ASEnvironmentDisplayTraitsCollectionTableSetEnvironmentState(lock) \
#define ASEnvironmentCollectionTableSetEnvironmentState(lock) \
- (void)setEnvironmentState:(ASEnvironmentState)environmentState\
{\
ASDN::MutexLocker l(lock);\
ASEnvironmentDisplayTraits oldDisplayTraits = self.environmentState.displayTraits;\
ASEnvironmentTraitCollection oldTraits = self.environmentState.traitCollection;\
[super setEnvironmentState:environmentState];\
ASEnvironmentDisplayTraits currentDisplayTraits = environmentState.displayTraits;\
if (ASEnvironmentDisplayTraitsIsEqualToASEnvironmentDisplayTraits(currentDisplayTraits, oldDisplayTraits) == NO) {\
ASEnvironmentTraitCollection currentTraits = environmentState.traitCollection;\
if (ASEnvironmentTraitCollectionIsEqualToASEnvironmentTraitCollection(currentTraits, oldTraits) == NO) {\
NSArray<NSArray <ASCellNode *> *> *completedNodes = [self.view.dataController completedNodes];\
for (NSArray *sectionArray in completedNodes) {\
for (ASCellNode *cellNode in sectionArray) {\
ASEnvironmentStatePropagateDown(cellNode, currentDisplayTraits);\
ASEnvironmentStatePropagateDown(cellNode, currentTraits);\
[cellNode setNeedsLayout];\
}\
}\

View File

@@ -26,12 +26,12 @@ ASEnvironmentHierarchyState _ASEnvironmentHierarchyStateMakeDefault()
};
}
extern void ASDisplayTraitsClearDisplayContext(id<ASEnvironment> rootEnvironment)
extern void ASEnvironmentTraitCollectionClearDisplayContext(id<ASEnvironment> rootEnvironment)
{
ASEnvironmentState envState = [rootEnvironment environmentState];
ASEnvironmentDisplayTraits displayTraits = envState.displayTraits;
ASEnvironmentTraitCollection displayTraits = envState.traitCollection;
displayTraits.displayContext = nil;
envState.displayTraits = displayTraits;
envState.traitCollection = displayTraits;
[rootEnvironment setEnvironmentState:envState];
for (id<ASEnvironment> child in [rootEnvironment children]) {
@@ -39,37 +39,37 @@ extern void ASDisplayTraitsClearDisplayContext(id<ASEnvironment> rootEnvironment
}
}
ASEnvironmentDisplayTraits _ASEnvironmentDisplayTraitsMakeDefault()
ASEnvironmentTraitCollection _ASEnvironmentTraitCollectionMakeDefault()
{
return (ASEnvironmentDisplayTraits) {
return (ASEnvironmentTraitCollection) {
// Default values can be defined in here
};
}
ASEnvironmentDisplayTraits ASEnvironmentDisplayTraitsFromUITraitCollection(UITraitCollection *traitCollection)
ASEnvironmentTraitCollection ASEnvironmentTraitCollectionFromUITraitCollection(UITraitCollection *traitCollection)
{
ASEnvironmentDisplayTraits displayTraits;
ASEnvironmentTraitCollection asyncTraitCollection;
if (AS_AT_LEAST_IOS8) {
displayTraits.displayScale = traitCollection.displayScale;
displayTraits.horizontalSizeClass = traitCollection.horizontalSizeClass;
displayTraits.verticalSizeClass = traitCollection.verticalSizeClass;
displayTraits.userInterfaceIdiom = traitCollection.userInterfaceIdiom;
asyncTraitCollection.displayScale = traitCollection.displayScale;
asyncTraitCollection.horizontalSizeClass = traitCollection.horizontalSizeClass;
asyncTraitCollection.verticalSizeClass = traitCollection.verticalSizeClass;
asyncTraitCollection.userInterfaceIdiom = traitCollection.userInterfaceIdiom;
if (AS_AT_LEAST_IOS9) {
displayTraits.forceTouchCapability = traitCollection.forceTouchCapability;
asyncTraitCollection.forceTouchCapability = traitCollection.forceTouchCapability;
}
}
return displayTraits;
return asyncTraitCollection;
}
BOOL ASEnvironmentDisplayTraitsIsEqualToASEnvironmentDisplayTraits(ASEnvironmentDisplayTraits displayTraits0, ASEnvironmentDisplayTraits displayTraits1)
BOOL ASEnvironmentTraitCollectionIsEqualToASEnvironmentTraitCollection(ASEnvironmentTraitCollection traitCollection0, ASEnvironmentTraitCollection traitCollection1)
{
return
displayTraits0.verticalSizeClass == displayTraits1.verticalSizeClass &&
displayTraits0.horizontalSizeClass == displayTraits1.horizontalSizeClass &&
displayTraits0.displayScale == displayTraits1.displayScale &&
displayTraits0.userInterfaceIdiom == displayTraits1.userInterfaceIdiom &&
displayTraits0.forceTouchCapability == displayTraits1.forceTouchCapability &&
displayTraits0.displayContext == displayTraits1.displayContext;
traitCollection0.verticalSizeClass == traitCollection1.verticalSizeClass &&
traitCollection0.horizontalSizeClass == traitCollection1.horizontalSizeClass &&
traitCollection0.displayScale == traitCollection1.displayScale &&
traitCollection0.userInterfaceIdiom == traitCollection1.userInterfaceIdiom &&
traitCollection0.forceTouchCapability == traitCollection1.forceTouchCapability &&
traitCollection0.displayContext == traitCollection1.displayContext;
}
ASEnvironmentState ASEnvironmentStateMakeDefault()
@@ -77,7 +77,7 @@ ASEnvironmentState ASEnvironmentStateMakeDefault()
return (ASEnvironmentState) {
.layoutOptionsState = _ASEnvironmentLayoutOptionsStateMakeDefault(),
.hierarchyState = _ASEnvironmentHierarchyStateMakeDefault(),
.displayTraits = _ASEnvironmentDisplayTraitsMakeDefault()
.traitCollection = _ASEnvironmentTraitCollectionMakeDefault()
};
}

View File

@@ -11,7 +11,7 @@
#import <UIKit/UIKit.h>
#import <AsyncDisplayKit/ASEnvironment.h>
@interface ASDisplayTraits : NSObject
@interface ASTraitCollection : NSObject
@property (nonatomic, assign) BOOL isMutable;
@@ -21,9 +21,9 @@
@property (nonatomic, assign) UIUserInterfaceSizeClass verticalSizeClass;
@property (nonatomic, assign) UIForceTouchCapability forceTouchCapability;
+ (ASDisplayTraits *)displayTraitsWithASEnvironmentDisplayTraits:(ASEnvironmentDisplayTraits)traits;
+ (ASDisplayTraits *)displayTraitsWithUITraitCollection:(UITraitCollection *)traitCollection;
+ (ASTraitCollection *)displayTraitsWithASEnvironmentTraitCollection:(ASEnvironmentTraitCollection)traits;
+ (ASTraitCollection *)displayTraitsWithUITraitCollection:(UITraitCollection *)traitCollection;
- (ASEnvironmentDisplayTraits)environmentDisplayTraits;
- (ASEnvironmentTraitCollection)environmentTraitCollection;
@end

View File

@@ -6,11 +6,11 @@
// Copyright © 2016 Facebook. All rights reserved.
//
#import "ASDisplayTraits.h"
#import "ASTraitCollection.h"
#import <AsyncDisplayKit/ASAssert.h>
#import <AsyncDisplayKit/ASAvailability.h>
@implementation ASDisplayTraits
@implementation ASTraitCollection
- (instancetype)init
{
@@ -51,35 +51,35 @@
_forceTouchCapability = forceTouchCapability;
}
+ (ASDisplayTraits *)displayTraitsWithASEnvironmentDisplayTraits:(ASEnvironmentDisplayTraits)traits
+ (ASTraitCollection *)displayTraitsWithASEnvironmentTraitCollection:(ASEnvironmentTraitCollection)traits
{
ASDisplayTraits *displayTraits = [[ASDisplayTraits alloc] init];
displayTraits.displayScale = traits.displayScale;
displayTraits.horizontalSizeClass = traits.horizontalSizeClass;
displayTraits.verticalSizeClass = traits.verticalSizeClass;
displayTraits.userInterfaceIdiom = traits.userInterfaceIdiom;
displayTraits.forceTouchCapability = traits.forceTouchCapability;
return displayTraits;
ASTraitCollection *traitCollection = [[ASTraitCollection alloc] init];
traitCollection.displayScale = traits.displayScale;
traitCollection.horizontalSizeClass = traits.horizontalSizeClass;
traitCollection.verticalSizeClass = traits.verticalSizeClass;
traitCollection.userInterfaceIdiom = traits.userInterfaceIdiom;
traitCollection.forceTouchCapability = traits.forceTouchCapability;
return traitCollection;
}
+ (ASDisplayTraits *)displayTraitsWithUITraitCollection:(UITraitCollection *)traitCollection
+ (ASTraitCollection *)displayTraitsWithUITraitCollection:(UITraitCollection *)traitCollection
{
ASDisplayTraits *displayTraits = [[ASDisplayTraits alloc] init];
ASTraitCollection *asyncTraitCollection = [[ASTraitCollection alloc] init];
if (AS_AT_LEAST_IOS8) {
displayTraits.displayScale = traitCollection.displayScale;
displayTraits.horizontalSizeClass = traitCollection.horizontalSizeClass;
displayTraits.verticalSizeClass = traitCollection.verticalSizeClass;
displayTraits.userInterfaceIdiom = traitCollection.userInterfaceIdiom;
asyncTraitCollection.displayScale = traitCollection.displayScale;
asyncTraitCollection.horizontalSizeClass = traitCollection.horizontalSizeClass;
asyncTraitCollection.verticalSizeClass = traitCollection.verticalSizeClass;
asyncTraitCollection.userInterfaceIdiom = traitCollection.userInterfaceIdiom;
if (AS_AT_LEAST_IOS9) {
displayTraits.forceTouchCapability = traitCollection.forceTouchCapability;
asyncTraitCollection.forceTouchCapability = traitCollection.forceTouchCapability;
}
}
return displayTraits;
return asyncTraitCollection;
}
- (ASEnvironmentDisplayTraits)environmentDisplayTraits
- (ASEnvironmentTraitCollection)environmentTraitCollection
{
return (ASEnvironmentDisplayTraits) {
return (ASEnvironmentTraitCollection) {
.displayScale = self.displayScale,
.horizontalSizeClass = self.horizontalSizeClass,
.userInterfaceIdiom = self.userInterfaceIdiom,

View File

@@ -12,12 +12,12 @@
#import "ASAssert.h"
#import "ASBaseDefines.h"
#import "ASDisplayTraits.h"
#import "ASEnvironmentInternal.h"
#import "ASInternalHelpers.h"
#import "ASLayout.h"
#import "ASThread.h"
#import "ASTraitCollection.h"
#import <objc/runtime.h>
#import <vector>
@@ -204,10 +204,10 @@
ASEnvironmentLayoutOptionsForwarding
ASEnvironmentLayoutExtensibilityForwarding
- (ASDisplayTraits *)displayTraits
- (ASTraitCollection *)asyncTraitCollection
{
ASDN::MutexLocker l(_propertyLock);
return [ASDisplayTraits displayTraitsWithASEnvironmentDisplayTraits:_environmentState.displayTraits];
return [ASTraitCollection displayTraitsWithASEnvironmentTraitCollection:_environmentState.traitCollection];
}
@end

View File

@@ -49,8 +49,8 @@ ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environme
static const struct ASEnvironmentHierarchyState ASEnvironmentDefaultHierarchyState = {};
ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environmentState, ASEnvironmentHierarchyState state, ASEnvironmentStatePropagation propagation);
static const struct ASEnvironmentDisplayTraits ASEnvironmentDefaultDisplayTraits = {};
ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environmentState, ASEnvironmentDisplayTraits state, ASEnvironmentStatePropagation propagation);
static const struct ASEnvironmentTraitCollection ASEnvironmentDefaultTraitCollection = {};
ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environmentState, ASEnvironmentTraitCollection state, ASEnvironmentStatePropagation propagation);
#pragma mark - Propagation

View File

@@ -194,21 +194,21 @@ ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environme
return environmentState;
}
ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState childEnvironmentState, ASEnvironmentDisplayTraits parentDisplayTraits, ASEnvironmentStatePropagation propagation) {
ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState childEnvironmentState, ASEnvironmentTraitCollection parentTraitCollection, ASEnvironmentStatePropagation propagation) {
if (propagation == ASEnvironmentStatePropagation::DOWN && !ASEnvironmentStateTraitCollectionPropagationEnabled()) {
return childEnvironmentState;
}
// Support propagate down
if (propagation == ASEnvironmentStatePropagation::DOWN) {
ASEnvironmentDisplayTraits childDisplayTraits = childEnvironmentState.displayTraits;
childDisplayTraits.horizontalSizeClass = parentDisplayTraits.horizontalSizeClass;
childDisplayTraits.verticalSizeClass = parentDisplayTraits.verticalSizeClass;
childDisplayTraits.userInterfaceIdiom = parentDisplayTraits.userInterfaceIdiom;
childDisplayTraits.forceTouchCapability = parentDisplayTraits.forceTouchCapability;
childDisplayTraits.displayScale = parentDisplayTraits.displayScale;
childDisplayTraits.displayContext = parentDisplayTraits.displayContext;
childEnvironmentState.displayTraits = childDisplayTraits;
ASEnvironmentTraitCollection childTraitCollection = childEnvironmentState.traitCollection;
childTraitCollection.horizontalSizeClass = parentTraitCollection.horizontalSizeClass;
childTraitCollection.verticalSizeClass = parentTraitCollection.verticalSizeClass;
childTraitCollection.userInterfaceIdiom = parentTraitCollection.userInterfaceIdiom;
childTraitCollection.forceTouchCapability = parentTraitCollection.forceTouchCapability;
childTraitCollection.displayScale = parentTraitCollection.displayScale;
childTraitCollection.displayContext = parentTraitCollection.displayContext;
childEnvironmentState.traitCollection = childTraitCollection;
}
return childEnvironmentState;

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Sample.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View File

@@ -11,7 +11,7 @@
#import "CollectionViewController.h"
#import "KittenNode.h"
#import <AsyncDisplayKit/ASDisplayTraits.h>
#import <AsyncDisplayKit/ASTraitCollection.h>
@interface CollectionViewController () <ASCollectionDelegate, ASCollectionDataSource>
@property (nonatomic, strong) ASCollectionNode *collectionNode;
@@ -62,9 +62,9 @@
- (ASSizeRange)collectionView:(ASCollectionView *)collectionView constrainedSizeForNodeAtIndexPath:(NSIndexPath *)indexPath
{
ASDisplayTraits *displayTraits = [self.collectionNode displayTraits];
ASTraitCollection *traitCollection = [self.collectionNode asyncTraitCollection];
if (displayTraits.horizontalSizeClass == UIUserInterfaceSizeClassRegular) {
if (traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassRegular) {
return ASSizeRangeMake(CGSizeMake(200, 120), CGSizeMake(200, 120));
}
return ASSizeRangeMake(CGSizeMake(132, 180), CGSizeMake(132, 180));

View File

@@ -12,7 +12,7 @@
#import "KittenNode.h"
#import "OverrideViewController.h"
#import <AsyncDisplayKit/ASDisplayTraits.h>
#import <AsyncDisplayKit/ASTraitCollection.h>
static const CGFloat kOuterPadding = 16.0f;
static const CGFloat kInnerPadding = 10.0f;
@@ -130,13 +130,13 @@ static const CGFloat kInnerPadding = 10.0f;
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize
{
ASDisplayTraits *displayTraits = [self displayTraits];
ASTraitCollection *traitCollection = [self asyncTraitCollection];
ASStackLayoutSpec *stackSpec = [[ASStackLayoutSpec alloc] init];
stackSpec.spacing = kInnerPadding;
stackSpec.children = @[_imageNode, _textNode];
if (displayTraits.horizontalSizeClass == UIUserInterfaceSizeClassRegular) {
if (traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassRegular) {
_imageNode.alignSelf = ASStackLayoutAlignSelfStart;
stackSpec.direction = ASStackLayoutDirectionHorizontal;
} else {
@@ -152,10 +152,10 @@ static const CGFloat kInnerPadding = 10.0f;
OverrideViewController *overrideVC = [[OverrideViewController alloc] init];
overrideVC.overrideDisplayTraitsWithTraitCollection = ^(UITraitCollection *traitCollection) {
ASDisplayTraits *displayTraits = [ASDisplayTraits displayTraitsWithUITraitCollection:traitCollection];
displayTraits.horizontalSizeClass = UIUserInterfaceSizeClassCompact;
displayTraits.verticalSizeClass = UIUserInterfaceSizeClassCompact;
return displayTraits;
ASTraitCollection *asyncTraitCollection = [ASTraitCollection displayTraitsWithUITraitCollection:traitCollection];
asyncTraitCollection.horizontalSizeClass = UIUserInterfaceSizeClassCompact;
asyncTraitCollection.verticalSizeClass = UIUserInterfaceSizeClassCompact;
return asyncTraitCollection;
};
[sourceViewController presentViewController:overrideVC animated:YES completion:nil];

View File

@@ -10,7 +10,7 @@
*/
#import "OverrideViewController.h"
#import <AsyncDisplayKit/ASDisplayTraits.h>
#import <AsyncDisplayKit/ASTraitCollection.h>
static NSString *kLinkAttributeName = @"PlaceKittenNodeLinkAttributeName";
@@ -44,8 +44,8 @@ static NSString *kLinkAttributeName = @"PlaceKittenNodeLinkAttributeName";
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize
{
CGFloat pointSize = 16.f;
ASDisplayTraits *displayTraits = [self displayTraits];
if (displayTraits.horizontalSizeClass == UIUserInterfaceSizeClassRegular) {
ASTraitCollection *traitCollection = [self asyncTraitCollection];
if (traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassRegular) {
// This should never happen because we override the VC's display traits to always be compact.
pointSize = 100;
}