mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-14 02:10:15 +00:00
addressed some comments
This commit is contained in:
parent
8bb4eba080
commit
b4a6f87ca6
@ -245,6 +245,6 @@
|
|||||||
[self.view reloadDataImmediately];
|
[self.view reloadDataImmediately];
|
||||||
}
|
}
|
||||||
|
|
||||||
ASDisplayTraitsCollectionTableSetEnvironmentState
|
ASEnvironmentDisplayTraitsCollectionTableSetEnvironmentState
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@ -2709,12 +2709,12 @@ static const char *ASDisplayNodeDrawingPriorityKey = "ASDrawingPriority";
|
|||||||
|
|
||||||
- (BOOL)supportsUpwardPropagation
|
- (BOOL)supportsUpwardPropagation
|
||||||
{
|
{
|
||||||
return ASEnvironmentStateUpwardPropagationEnabled();
|
return ASEnvironmentStatePropagationEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)supportsDownwardPropagation
|
- (BOOL)supportsTraitsCollectionPropagation
|
||||||
{
|
{
|
||||||
return ASEnvironmentStateDownwardPropagationEnabled();
|
return ASEnvironmentStateTraitCollectionPropagationEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
ASEnvironmentLayoutOptionsForwarding
|
ASEnvironmentLayoutOptionsForwarding
|
||||||
|
|||||||
@ -159,6 +159,6 @@
|
|||||||
[self.view clearFetchedData];
|
[self.view clearFetchedData];
|
||||||
}
|
}
|
||||||
|
|
||||||
ASDisplayTraitsCollectionTableSetEnvironmentState
|
ASEnvironmentDisplayTraitsCollectionTableSetEnvironmentState
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@ -11,8 +11,8 @@
|
|||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
typedef ASDisplayTraits (^ASDisplayTraitsForTraitCollectionBlock)(UITraitCollection *traitCollection);
|
typedef ASEnvironmentDisplayTraits (^ASEnvironmentDisplayTraitsForTraitCollectionBlock)(UITraitCollection *traitCollection);
|
||||||
typedef ASDisplayTraits (^ASDisplayTraitsForTraitWindowSizeBlock)(CGSize windowSize);
|
typedef ASEnvironmentDisplayTraits (^ASEnvironmentDisplayTraitsForTraitWindowSizeBlock)(CGSize windowSize);
|
||||||
|
|
||||||
@interface ASViewController<__covariant DisplayNodeType : ASDisplayNode *> : UIViewController
|
@interface ASViewController<__covariant DisplayNodeType : ASDisplayNode *> : UIViewController
|
||||||
|
|
||||||
@ -25,12 +25,12 @@ typedef ASDisplayTraits (^ASDisplayTraitsForTraitWindowSizeBlock)(CGSize windowS
|
|||||||
/**
|
/**
|
||||||
* Set this block to customize the ASDisplayTraits returned when the VC transitions to the given traitCollection.
|
* Set this block to customize the ASDisplayTraits returned when the VC transitions to the given traitCollection.
|
||||||
*/
|
*/
|
||||||
@property (nonatomic, copy) ASDisplayTraitsForTraitCollectionBlock overrideDisplayTraitsWithTraitCollection;
|
@property (nonatomic, copy) ASEnvironmentDisplayTraitsForTraitCollectionBlock overrideDisplayTraitsWithTraitCollection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set this block to customize the ASDisplayTraits returned when the VC transitions to the given window size.
|
* Set this block to customize the ASDisplayTraits returned when the VC transitions to the given window size.
|
||||||
*/
|
*/
|
||||||
@property (nonatomic, copy) ASDisplayTraitsForTraitWindowSizeBlock overrideDisplayTraitsWithWindowSize;
|
@property (nonatomic, copy) ASEnvironmentDisplayTraitsForTraitWindowSizeBlock overrideDisplayTraitsWithWindowSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @abstract Passthrough property to the the .interfaceState of the node.
|
* @abstract Passthrough property to the the .interfaceState of the node.
|
||||||
|
|||||||
@ -143,18 +143,18 @@
|
|||||||
|
|
||||||
#pragma mark - ASDisplayTraits
|
#pragma mark - ASDisplayTraits
|
||||||
|
|
||||||
- (ASDisplayTraits)displayTraitsForTraitCollection:(UITraitCollection *)traitCollection
|
- (ASEnvironmentDisplayTraits)displayTraitsForTraitCollection:(UITraitCollection *)traitCollection
|
||||||
{
|
{
|
||||||
if (self.overrideDisplayTraitsWithTraitCollection) {
|
if (self.overrideDisplayTraitsWithTraitCollection) {
|
||||||
return self.overrideDisplayTraitsWithTraitCollection(traitCollection);
|
return self.overrideDisplayTraitsWithTraitCollection(traitCollection);
|
||||||
}
|
}
|
||||||
|
|
||||||
ASDisplayTraits displayTraits = ASDisplayTraitsFromUITraitCollection(traitCollection);
|
ASEnvironmentDisplayTraits displayTraits = ASEnvironmentDisplayTraitsFromUITraitCollection(traitCollection);
|
||||||
displayTraits.displayContext = _displayTraitsContext;
|
displayTraits.displayContext = _displayTraitsContext;
|
||||||
return displayTraits;
|
return displayTraits;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (ASDisplayTraits)displayTraitsForWindowSize:(CGSize)windowSize
|
- (ASEnvironmentDisplayTraits)displayTraitsForWindowSize:(CGSize)windowSize
|
||||||
{
|
{
|
||||||
if (self.overrideDisplayTraitsWithWindowSize) {
|
if (self.overrideDisplayTraitsWithWindowSize) {
|
||||||
return self.overrideDisplayTraitsWithWindowSize(windowSize);
|
return self.overrideDisplayTraitsWithWindowSize(windowSize);
|
||||||
@ -162,12 +162,12 @@
|
|||||||
return self.node.environmentState.displayTraits;
|
return self.node.environmentState.displayTraits;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)progagateNewDisplayTraits:(ASDisplayTraits)displayTraits
|
- (void)progagateNewDisplayTraits:(ASEnvironmentDisplayTraits)displayTraits
|
||||||
{
|
{
|
||||||
ASEnvironmentState environmentState = self.node.environmentState;
|
ASEnvironmentState environmentState = self.node.environmentState;
|
||||||
ASDisplayTraits oldDisplayTraits = environmentState.displayTraits;
|
ASEnvironmentDisplayTraits oldDisplayTraits = environmentState.displayTraits;
|
||||||
|
|
||||||
if (ASDisplayTraitsIsEqualToASDisplayTraits(displayTraits, oldDisplayTraits) == NO) {
|
if (ASEnvironmentDisplayTraitsIsEqualToASEnvironmentDisplayTraits(displayTraits, oldDisplayTraits) == NO) {
|
||||||
environmentState.displayTraits = displayTraits;
|
environmentState.displayTraits = displayTraits;
|
||||||
[self.node setEnvironmentState:environmentState];
|
[self.node setEnvironmentState:environmentState];
|
||||||
[self.node setNeedsLayout];
|
[self.node setNeedsLayout];
|
||||||
@ -183,7 +183,7 @@
|
|||||||
{
|
{
|
||||||
[super traitCollectionDidChange:previousTraitCollection];
|
[super traitCollectionDidChange:previousTraitCollection];
|
||||||
|
|
||||||
ASDisplayTraits displayTraits = [self displayTraitsForTraitCollection:self.traitCollection];
|
ASEnvironmentDisplayTraits displayTraits = [self displayTraitsForTraitCollection:self.traitCollection];
|
||||||
[self progagateNewDisplayTraits:displayTraits];
|
[self progagateNewDisplayTraits:displayTraits];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,7 +191,7 @@
|
|||||||
{
|
{
|
||||||
[super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
|
[super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
|
||||||
|
|
||||||
ASDisplayTraits displayTraits = [self displayTraitsForTraitCollection:self.traitCollection];
|
ASEnvironmentDisplayTraits displayTraits = [self displayTraitsForTraitCollection:self.traitCollection];
|
||||||
[self progagateNewDisplayTraits:displayTraits];
|
[self progagateNewDisplayTraits:displayTraits];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,7 +199,7 @@
|
|||||||
{
|
{
|
||||||
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
|
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
|
||||||
|
|
||||||
ASDisplayTraits displayTraits = [self displayTraitsForWindowSize:size];
|
ASEnvironmentDisplayTraits displayTraits = [self displayTraitsForWindowSize:size];
|
||||||
[self progagateNewDisplayTraits:displayTraits];
|
[self progagateNewDisplayTraits:displayTraits];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -61,9 +61,9 @@ typedef struct ASEnvironmentHierarchyState {
|
|||||||
unsigned layoutPending:1; // = NO
|
unsigned layoutPending:1; // = NO
|
||||||
} ASEnvironmentHierarchyState;
|
} ASEnvironmentHierarchyState;
|
||||||
|
|
||||||
#pragma mark - ASDisplayTraits
|
#pragma mark - ASEnvironmentDisplayTraits
|
||||||
|
|
||||||
typedef struct ASDisplayTraits {
|
typedef struct ASEnvironmentDisplayTraits {
|
||||||
CGFloat displayScale;
|
CGFloat displayScale;
|
||||||
UIUserInterfaceSizeClass horizontalSizeClass;
|
UIUserInterfaceSizeClass horizontalSizeClass;
|
||||||
UIUserInterfaceIdiom userInterfaceIdiom;
|
UIUserInterfaceIdiom userInterfaceIdiom;
|
||||||
@ -86,19 +86,19 @@ typedef struct ASDisplayTraits {
|
|||||||
// which will propagate a nil displayContext to its subnodes.
|
// which will propagate a nil displayContext to its subnodes.
|
||||||
//__unsafe_unretained id displayContext;
|
//__unsafe_unretained id displayContext;
|
||||||
id __unsafe_unretained displayContext;
|
id __unsafe_unretained displayContext;
|
||||||
} ASDisplayTraits;
|
} ASEnvironmentDisplayTraits;
|
||||||
|
|
||||||
extern void ASDisplayTraitsClearDisplayContext(id<ASEnvironment> rootEnvironment);
|
extern void ASDisplayTraitsClearDisplayContext(id<ASEnvironment> rootEnvironment);
|
||||||
|
|
||||||
extern ASDisplayTraits ASDisplayTraitsFromUITraitCollection(UITraitCollection *traitCollection);
|
extern ASEnvironmentDisplayTraits ASEnvironmentDisplayTraitsFromUITraitCollection(UITraitCollection *traitCollection);
|
||||||
extern BOOL ASDisplayTraitsIsEqualToASDisplayTraits(ASDisplayTraits displayTraits0, ASDisplayTraits displayTraits1);
|
extern BOOL ASEnvironmentDisplayTraitsIsEqualToASEnvironmentDisplayTraits(ASEnvironmentDisplayTraits displayTraits0, ASEnvironmentDisplayTraits displayTraits1);
|
||||||
|
|
||||||
#pragma mark - ASEnvironmentState
|
#pragma mark - ASEnvironmentState
|
||||||
|
|
||||||
typedef struct ASEnvironmentState {
|
typedef struct ASEnvironmentState {
|
||||||
struct ASEnvironmentHierarchyState hierarchyState;
|
struct ASEnvironmentHierarchyState hierarchyState;
|
||||||
struct ASEnvironmentLayoutOptionsState layoutOptionsState;
|
struct ASEnvironmentLayoutOptionsState layoutOptionsState;
|
||||||
struct ASDisplayTraits displayTraits;
|
struct ASEnvironmentDisplayTraits displayTraits;
|
||||||
} ASEnvironmentState;
|
} ASEnvironmentState;
|
||||||
extern ASEnvironmentState ASEnvironmentStateMakeDefault();
|
extern ASEnvironmentState ASEnvironmentStateMakeDefault();
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ ASDISPLAYNODE_EXTERN_C_END
|
|||||||
- (BOOL)supportsUpwardPropagation;
|
- (BOOL)supportsUpwardPropagation;
|
||||||
|
|
||||||
/// Classes should implement this method and return YES / NO dependent if downware propagation is enabled or not
|
/// Classes should implement this method and return YES / NO dependent if downware propagation is enabled or not
|
||||||
- (BOOL)supportsDownwardPropagation;
|
- (BOOL)supportsTraitsCollectionPropagation;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@ -140,13 +140,13 @@ ASDISPLAYNODE_EXTERN_C_END
|
|||||||
// If there is any new downward propagating state, it should be added to this define.
|
// If there is any new downward propagating state, it should be added to this define.
|
||||||
//
|
//
|
||||||
// This logic is used in both ASCollectionNode and ASTableNode
|
// This logic is used in both ASCollectionNode and ASTableNode
|
||||||
#define ASDisplayTraitsCollectionTableSetEnvironmentState \
|
#define ASEnvironmentDisplayTraitsCollectionTableSetEnvironmentState \
|
||||||
- (void)setEnvironmentState:(ASEnvironmentState)environmentState\
|
- (void)setEnvironmentState:(ASEnvironmentState)environmentState\
|
||||||
{\
|
{\
|
||||||
ASDisplayTraits oldDisplayTraits = self.environmentState.displayTraits;\
|
ASEnvironmentDisplayTraits oldDisplayTraits = self.environmentState.displayTraits;\
|
||||||
[super setEnvironmentState:environmentState];\
|
[super setEnvironmentState:environmentState];\
|
||||||
ASDisplayTraits currentDisplayTraits = environmentState.displayTraits;\
|
ASEnvironmentDisplayTraits currentDisplayTraits = environmentState.displayTraits;\
|
||||||
if (ASDisplayTraitsIsEqualToASDisplayTraits(currentDisplayTraits, oldDisplayTraits) == NO) {\
|
if (ASEnvironmentDisplayTraitsIsEqualToASEnvironmentDisplayTraits(currentDisplayTraits, oldDisplayTraits) == NO) {\
|
||||||
NSArray<NSArray <ASCellNode *> *> *completedNodes = [self.view.dataController completedNodes];\
|
NSArray<NSArray <ASCellNode *> *> *completedNodes = [self.view.dataController completedNodes];\
|
||||||
for (NSArray *sectionArray in completedNodes) {\
|
for (NSArray *sectionArray in completedNodes) {\
|
||||||
for (ASCellNode *cellNode in sectionArray) {\
|
for (ASCellNode *cellNode in sectionArray) {\
|
||||||
|
|||||||
@ -28,7 +28,7 @@ ASEnvironmentHierarchyState _ASEnvironmentHierarchyStateMakeDefault()
|
|||||||
extern void ASDisplayTraitsClearDisplayContext(id<ASEnvironment> rootEnvironment)
|
extern void ASDisplayTraitsClearDisplayContext(id<ASEnvironment> rootEnvironment)
|
||||||
{
|
{
|
||||||
ASEnvironmentState envState = [rootEnvironment environmentState];
|
ASEnvironmentState envState = [rootEnvironment environmentState];
|
||||||
ASDisplayTraits displayTraits = envState.displayTraits;
|
ASEnvironmentDisplayTraits displayTraits = envState.displayTraits;
|
||||||
displayTraits.displayContext = nil;
|
displayTraits.displayContext = nil;
|
||||||
envState.displayTraits = displayTraits;
|
envState.displayTraits = displayTraits;
|
||||||
[rootEnvironment setEnvironmentState:envState];
|
[rootEnvironment setEnvironmentState:envState];
|
||||||
@ -38,16 +38,16 @@ extern void ASDisplayTraitsClearDisplayContext(id<ASEnvironment> rootEnvironment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ASDisplayTraits _ASDisplayTraitsMakeDefault()
|
ASEnvironmentDisplayTraits _ASEnvironmentDisplayTraitsMakeDefault()
|
||||||
{
|
{
|
||||||
return (ASDisplayTraits) {
|
return (ASEnvironmentDisplayTraits) {
|
||||||
// Default values can be defined in here
|
// Default values can be defined in here
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
ASDisplayTraits ASDisplayTraitsFromUITraitCollection(UITraitCollection *traitCollection)
|
ASEnvironmentDisplayTraits ASEnvironmentDisplayTraitsFromUITraitCollection(UITraitCollection *traitCollection)
|
||||||
{
|
{
|
||||||
return (ASDisplayTraits) {
|
return (ASEnvironmentDisplayTraits) {
|
||||||
.displayScale = traitCollection.displayScale,
|
.displayScale = traitCollection.displayScale,
|
||||||
.horizontalSizeClass = traitCollection.horizontalSizeClass,
|
.horizontalSizeClass = traitCollection.horizontalSizeClass,
|
||||||
.userInterfaceIdiom = traitCollection.userInterfaceIdiom,
|
.userInterfaceIdiom = traitCollection.userInterfaceIdiom,
|
||||||
@ -56,7 +56,7 @@ ASDisplayTraits ASDisplayTraitsFromUITraitCollection(UITraitCollection *traitCol
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL ASDisplayTraitsIsEqualToASDisplayTraits(ASDisplayTraits displayTraits0, ASDisplayTraits displayTraits1)
|
BOOL ASEnvironmentDisplayTraitsIsEqualToASEnvironmentDisplayTraits(ASEnvironmentDisplayTraits displayTraits0, ASEnvironmentDisplayTraits displayTraits1)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
displayTraits0.verticalSizeClass == displayTraits1.verticalSizeClass &&
|
displayTraits0.verticalSizeClass == displayTraits1.verticalSizeClass &&
|
||||||
@ -71,7 +71,7 @@ ASEnvironmentState ASEnvironmentStateMakeDefault()
|
|||||||
return (ASEnvironmentState) {
|
return (ASEnvironmentState) {
|
||||||
.layoutOptionsState = _ASEnvironmentLayoutOptionsStateMakeDefault(),
|
.layoutOptionsState = _ASEnvironmentLayoutOptionsStateMakeDefault(),
|
||||||
.hierarchyState = _ASEnvironmentHierarchyStateMakeDefault(),
|
.hierarchyState = _ASEnvironmentHierarchyStateMakeDefault(),
|
||||||
.displayTraits = _ASDisplayTraitsMakeDefault()
|
.displayTraits = _ASEnvironmentDisplayTraitsMakeDefault()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -80,7 +80,7 @@
|
|||||||
|
|
||||||
id<ASLayoutable> finalLayoutable = [child finalLayoutable];
|
id<ASLayoutable> finalLayoutable = [child finalLayoutable];
|
||||||
if (finalLayoutable != child) {
|
if (finalLayoutable != child) {
|
||||||
if (ASEnvironmentStateUpwardPropagationEnabled()) {
|
if (ASEnvironmentStatePropagationEnabled()) {
|
||||||
ASEnvironmentStatePropagateUp(finalLayoutable, child.environmentState.layoutOptionsState);
|
ASEnvironmentStatePropagateUp(finalLayoutable, child.environmentState.layoutOptionsState);
|
||||||
} else {
|
} else {
|
||||||
// If state propagation is not enabled the layout options state needs to be copied manually
|
// If state propagation is not enabled the layout options state needs to be copied manually
|
||||||
@ -183,12 +183,12 @@
|
|||||||
// the specifications that are known to have more than one.
|
// the specifications that are known to have more than one.
|
||||||
- (BOOL)supportsUpwardPropagation
|
- (BOOL)supportsUpwardPropagation
|
||||||
{
|
{
|
||||||
return ASEnvironmentStateUpwardPropagationEnabled();
|
return ASEnvironmentStatePropagationEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)supportsDownwardPropagation
|
- (BOOL)supportsTraitsCollectionPropagation
|
||||||
{
|
{
|
||||||
return ASEnvironmentStateDownwardPropagationEnabled();
|
return ASEnvironmentStateTraitCollectionPropagationEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)propagateUpLayoutable:(id<ASLayoutable>)layoutable
|
- (void)propagateUpLayoutable:(id<ASLayoutable>)layoutable
|
||||||
|
|||||||
@ -79,7 +79,7 @@ extern void ASLayoutableClearCurrentContext();
|
|||||||
#define ASEnvironmentLayoutOptionsForwarding \
|
#define ASEnvironmentLayoutOptionsForwarding \
|
||||||
- (void)propagateUpLayoutOptionsState\
|
- (void)propagateUpLayoutOptionsState\
|
||||||
{\
|
{\
|
||||||
if (!ASEnvironmentStateUpwardPropagationEnabled()) {\
|
if (!ASEnvironmentStatePropagationEnabled()) {\
|
||||||
return;\
|
return;\
|
||||||
}\
|
}\
|
||||||
id<ASEnvironment> parent = [self parent];\
|
id<ASEnvironment> parent = [self parent];\
|
||||||
|
|||||||
@ -12,8 +12,8 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
BOOL ASEnvironmentStateUpwardPropagationEnabled();
|
BOOL ASEnvironmentStatePropagationEnabled();
|
||||||
BOOL ASEnvironmentStateDownwardPropagationEnabled();
|
BOOL ASEnvironmentStateTraitCollectionPropagationEnabled();
|
||||||
|
|
||||||
|
|
||||||
#pragma mark - Set and get extensible values for layout options
|
#pragma mark - Set and get extensible values for layout options
|
||||||
@ -49,8 +49,8 @@ ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environme
|
|||||||
static const struct ASEnvironmentHierarchyState ASEnvironmentDefaultHierarchyState = {};
|
static const struct ASEnvironmentHierarchyState ASEnvironmentDefaultHierarchyState = {};
|
||||||
ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environmentState, ASEnvironmentHierarchyState state, ASEnvironmentStatePropagation propagation);
|
ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environmentState, ASEnvironmentHierarchyState state, ASEnvironmentStatePropagation propagation);
|
||||||
|
|
||||||
static const struct ASDisplayTraits ASEnvironmentDefaultDisplayTraits = {};
|
static const struct ASEnvironmentDisplayTraits ASEnvironmentDefaultDisplayTraits = {};
|
||||||
ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environmentState, ASDisplayTraits state, ASEnvironmentStatePropagation propagation);
|
ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environmentState, ASEnvironmentDisplayTraits state, ASEnvironmentStatePropagation propagation);
|
||||||
|
|
||||||
|
|
||||||
#pragma mark - Propagation
|
#pragma mark - Propagation
|
||||||
|
|||||||
@ -15,20 +15,19 @@
|
|||||||
//#define LOG(...) NSLog(__VA_ARGS__)
|
//#define LOG(...) NSLog(__VA_ARGS__)
|
||||||
#define LOG(...)
|
#define LOG(...)
|
||||||
|
|
||||||
#define AS_SUPPORT_UPWARD_PROPAGATION NO
|
#define AS_SUPPORT_PROPAGATION YES
|
||||||
#define AS_SUPPORT_DOWNWARD_PROPAGATION YES
|
#define AS_DOES_NOT_SUPPORT_PROPAGATION NO
|
||||||
|
|
||||||
BOOL ASEnvironmentStateUpwardPropagationEnabled()
|
BOOL ASEnvironmentStatePropagationEnabled()
|
||||||
{
|
{
|
||||||
return AS_SUPPORT_UPWARD_PROPAGATION;
|
return AS_DOES_NOT_SUPPORT_PROPAGATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL ASEnvironmentStateDownwardPropagationEnabled()
|
BOOL ASEnvironmentStateTraitCollectionPropagationEnabled()
|
||||||
{
|
{
|
||||||
return AS_SUPPORT_DOWNWARD_PROPAGATION;
|
return AS_SUPPORT_PROPAGATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#pragma mark - Traversing an ASEnvironment Tree
|
#pragma mark - Traversing an ASEnvironment Tree
|
||||||
|
|
||||||
void ASEnvironmentPerformBlockOnObjectAndChildren(id<ASEnvironment> object, void(^block)(id<ASEnvironment> node))
|
void ASEnvironmentPerformBlockOnObjectAndChildren(id<ASEnvironment> object, void(^block)(id<ASEnvironment> node))
|
||||||
@ -120,7 +119,7 @@ ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environme
|
|||||||
// Merge object and layout options state
|
// Merge object and layout options state
|
||||||
LOG(@"Merge object and state: %@ - ASEnvironmentLayoutOptionsState", layoutOptionsState);
|
LOG(@"Merge object and state: %@ - ASEnvironmentLayoutOptionsState", layoutOptionsState);
|
||||||
|
|
||||||
if (!ASEnvironmentStateUpwardPropagationEnabled() && propagation == ASEnvironmentStatePropagation::UP) {
|
if (!ASEnvironmentStatePropagationEnabled() && propagation == ASEnvironmentStatePropagation::UP) {
|
||||||
return environmentState;
|
return environmentState;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,14 +194,14 @@ ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState environme
|
|||||||
return environmentState;
|
return environmentState;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState childEnvironmentState, ASDisplayTraits parentDisplayTraits, ASEnvironmentStatePropagation propagation) {
|
ASEnvironmentState ASEnvironmentMergeObjectAndState(ASEnvironmentState childEnvironmentState, ASEnvironmentDisplayTraits parentDisplayTraits, ASEnvironmentStatePropagation propagation) {
|
||||||
if (propagation == ASEnvironmentStatePropagation::DOWN && !ASEnvironmentStateDownwardPropagationEnabled()) {
|
if (propagation == ASEnvironmentStatePropagation::DOWN && !ASEnvironmentStateTraitCollectionPropagationEnabled()) {
|
||||||
return childEnvironmentState;
|
return childEnvironmentState;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Support propagate down
|
// Support propagate down
|
||||||
if (propagation == ASEnvironmentStatePropagation::DOWN) {
|
if (propagation == ASEnvironmentStatePropagation::DOWN) {
|
||||||
ASDisplayTraits childDisplayTraits = childEnvironmentState.displayTraits;
|
ASEnvironmentDisplayTraits childDisplayTraits = childEnvironmentState.displayTraits;
|
||||||
childDisplayTraits.horizontalSizeClass = parentDisplayTraits.horizontalSizeClass;
|
childDisplayTraits.horizontalSizeClass = parentDisplayTraits.horizontalSizeClass;
|
||||||
childDisplayTraits.verticalSizeClass = parentDisplayTraits.verticalSizeClass;
|
childDisplayTraits.verticalSizeClass = parentDisplayTraits.verticalSizeClass;
|
||||||
childDisplayTraits.userInterfaceIdiom = parentDisplayTraits.userInterfaceIdiom;
|
childDisplayTraits.userInterfaceIdiom = parentDisplayTraits.userInterfaceIdiom;
|
||||||
|
|||||||
@ -61,7 +61,7 @@
|
|||||||
|
|
||||||
- (ASSizeRange)collectionView:(ASCollectionView *)collectionView constrainedSizeForNodeAtIndexPath:(NSIndexPath *)indexPath
|
- (ASSizeRange)collectionView:(ASCollectionView *)collectionView constrainedSizeForNodeAtIndexPath:(NSIndexPath *)indexPath
|
||||||
{
|
{
|
||||||
ASDisplayTraits displayTraits = self.collectionNode.environmentState.displayTraits;
|
ASEnvironmentDisplayTraits displayTraits = self.collectionNode.environmentState.displayTraits;
|
||||||
|
|
||||||
if (displayTraits.horizontalSizeClass == UIUserInterfaceSizeClassRegular) {
|
if (displayTraits.horizontalSizeClass == UIUserInterfaceSizeClassRegular) {
|
||||||
return ASSizeRangeMake(CGSizeMake(200, 120), CGSizeMake(200, 120));
|
return ASSizeRangeMake(CGSizeMake(200, 120), CGSizeMake(200, 120));
|
||||||
|
|||||||
@ -129,7 +129,7 @@ static const CGFloat kInnerPadding = 10.0f;
|
|||||||
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize
|
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize
|
||||||
{
|
{
|
||||||
|
|
||||||
ASDisplayTraits displayTraits = self.environmentState.displayTraits;
|
ASEnvironmentDisplayTraits displayTraits = self.environmentState.displayTraits;
|
||||||
|
|
||||||
ASStackLayoutSpec *stackSpec = [[ASStackLayoutSpec alloc] init];
|
ASStackLayoutSpec *stackSpec = [[ASStackLayoutSpec alloc] init];
|
||||||
stackSpec.spacing = kInnerPadding;
|
stackSpec.spacing = kInnerPadding;
|
||||||
@ -152,7 +152,7 @@ static const CGFloat kInnerPadding = 10.0f;
|
|||||||
OverrideViewController *overrideVC = [[OverrideViewController alloc] init];
|
OverrideViewController *overrideVC = [[OverrideViewController alloc] init];
|
||||||
|
|
||||||
overrideVC.overrideDisplayTraitsWithTraitCollection = ^(UITraitCollection *traitCollection) {
|
overrideVC.overrideDisplayTraitsWithTraitCollection = ^(UITraitCollection *traitCollection) {
|
||||||
return (ASDisplayTraits) {
|
return (ASEnvironmentDisplayTraits) {
|
||||||
.displayScale = traitCollection.displayScale,
|
.displayScale = traitCollection.displayScale,
|
||||||
.horizontalSizeClass = UIUserInterfaceSizeClassCompact,
|
.horizontalSizeClass = UIUserInterfaceSizeClassCompact,
|
||||||
.userInterfaceIdiom = traitCollection.userInterfaceIdiom,
|
.userInterfaceIdiom = traitCollection.userInterfaceIdiom,
|
||||||
|
|||||||
@ -42,7 +42,7 @@ static NSString *kLinkAttributeName = @"PlaceKittenNodeLinkAttributeName";
|
|||||||
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize
|
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize
|
||||||
{
|
{
|
||||||
CGFloat pointSize = 16.f;
|
CGFloat pointSize = 16.f;
|
||||||
ASDisplayTraits displayTraits = self.environmentState.displayTraits;
|
ASEnvironmentDisplayTraits displayTraits = self.environmentState.displayTraits;
|
||||||
if (displayTraits.horizontalSizeClass == UIUserInterfaceSizeClassRegular) {
|
if (displayTraits.horizontalSizeClass == UIUserInterfaceSizeClassRegular) {
|
||||||
// This should never happen because we override the VC's display traits to always be compact.
|
// This should never happen because we override the VC's display traits to always be compact.
|
||||||
pointSize = 100;
|
pointSize = 100;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user