mirror of
https://github.com/HackPlan/AsyncDisplayKit.git
synced 2026-04-27 17:30:48 +08:00
changed DisplayTraits to TraitCollection
This commit is contained in:
10
examples/ASTraitCollection/Sample.xcworkspace/contents.xcworkspacedata
generated
Normal file
10
examples/ASTraitCollection/Sample.xcworkspace/contents.xcworkspacedata
generated
Normal 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>
|
||||
@@ -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));
|
||||
@@ -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];
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user