[ASDisplayNode] added asyncTraitCollectionDidChange method (#1831)

Subclasses can override this method to react to a trait collection change
This commit is contained in:
ricky
2016-06-30 19:45:29 -07:00
committed by appleguy
parent 8804342a98
commit 8c3025bb12
3 changed files with 23 additions and 1 deletions

View File

@@ -368,6 +368,7 @@
9C8898BB1C738B9800D6B02E /* ASTextKitFontSizeAdjuster.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C8898BA1C738B9800D6B02E /* ASTextKitFontSizeAdjuster.mm */; }; 9C8898BB1C738B9800D6B02E /* ASTextKitFontSizeAdjuster.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C8898BA1C738B9800D6B02E /* ASTextKitFontSizeAdjuster.mm */; };
9C8898BC1C738BA800D6B02E /* ASTextKitFontSizeAdjuster.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C8898BA1C738B9800D6B02E /* ASTextKitFontSizeAdjuster.mm */; }; 9C8898BC1C738BA800D6B02E /* ASTextKitFontSizeAdjuster.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C8898BA1C738B9800D6B02E /* ASTextKitFontSizeAdjuster.mm */; };
9C8898BD1C738BB800D6B02E /* ASTextKitFontSizeAdjuster.h in Headers */ = {isa = PBXBuildFile; fileRef = A32FEDD31C501B6A004F642A /* ASTextKitFontSizeAdjuster.h */; }; 9C8898BD1C738BB800D6B02E /* ASTextKitFontSizeAdjuster.h in Headers */ = {isa = PBXBuildFile; fileRef = A32FEDD31C501B6A004F642A /* ASTextKitFontSizeAdjuster.h */; };
9CC606651D24DF9E006581A0 /* NSIndexSet+ASHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = CC4981BB1D1C7F65004E13CC /* NSIndexSet+ASHelpers.m */; };
9CDC18CC1B910E12004965E2 /* ASLayoutablePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CDC18CB1B910E12004965E2 /* ASLayoutablePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9CDC18CC1B910E12004965E2 /* ASLayoutablePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CDC18CB1B910E12004965E2 /* ASLayoutablePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; };
9CDC18CD1B910E12004965E2 /* ASLayoutablePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CDC18CB1B910E12004965E2 /* ASLayoutablePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9CDC18CD1B910E12004965E2 /* ASLayoutablePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CDC18CB1B910E12004965E2 /* ASLayoutablePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; };
9CFFC6BE1CCAC52B006A6476 /* ASEnvironment.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9CFFC6BD1CCAC52B006A6476 /* ASEnvironment.mm */; }; 9CFFC6BE1CCAC52B006A6476 /* ASEnvironment.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9CFFC6BD1CCAC52B006A6476 /* ASEnvironment.mm */; };
@@ -2276,6 +2277,7 @@
CC3B208C1C3F7A5400798563 /* ASWeakSet.m in Sources */, CC3B208C1C3F7A5400798563 /* ASWeakSet.m in Sources */,
B350621C1B010EFD0018CF92 /* ASFlowLayoutController.mm in Sources */, B350621C1B010EFD0018CF92 /* ASFlowLayoutController.mm in Sources */,
B350621E1B010EFD0018CF92 /* ASHighlightOverlayLayer.mm in Sources */, B350621E1B010EFD0018CF92 /* ASHighlightOverlayLayer.mm in Sources */,
9CC606651D24DF9E006581A0 /* NSIndexSet+ASHelpers.m in Sources */,
92074A641CC8BA1900918F75 /* ASImageNode+tvOS.m in Sources */, 92074A641CC8BA1900918F75 /* ASImageNode+tvOS.m in Sources */,
B35062541B010EFD0018CF92 /* ASImageNode+CGExtras.m in Sources */, B35062541B010EFD0018CF92 /* ASImageNode+CGExtras.m in Sources */,
68355B401CB57A69001D4E68 /* ASImageContainerProtocolCategories.m in Sources */, 68355B401CB57A69001D4E68 /* ASImageContainerProtocolCategories.m in Sources */,

View File

@@ -465,6 +465,13 @@ NS_ASSUME_NONNULL_BEGIN
*/ */
- (NSString *)descriptionForRecursiveDescription; - (NSString *)descriptionForRecursiveDescription;
/**
* @abstract Called when the node's ASTraitCollection changes
*
* @discussion Subclasses can override this method to react to a trait collection change.
*/
- (void)asyncTraitCollectionDidChange;
@end @end
#define ASDisplayNodeAssertThreadAffinity(viewNode) ASDisplayNodeAssert(!viewNode || ASDisplayNodeThreadIsMain() || !(viewNode).nodeLoaded, @"Incorrect display node thread affinity - this method should not be called off the main thread after the ASDisplayNode's view or layer have been created") #define ASDisplayNodeAssertThreadAffinity(viewNode) ASDisplayNodeAssert(!viewNode || ASDisplayNodeThreadIsMain() || !(viewNode).nodeLoaded, @"Incorrect display node thread affinity - this method should not be called off the main thread after the ASDisplayNode's view or layer have been created")

View File

@@ -2755,7 +2755,12 @@ static const char *ASDisplayNodeDrawingPriorityKey = "ASDrawingPriority";
- (void)setEnvironmentState:(ASEnvironmentState)environmentState - (void)setEnvironmentState:(ASEnvironmentState)environmentState
{ {
ASEnvironmentTraitCollection oldTraitCollection = _environmentState.environmentTraitCollection;
_environmentState = environmentState; _environmentState = environmentState;
if (ASEnvironmentTraitCollectionIsEqualToASEnvironmentTraitCollection(oldTraitCollection, _environmentState.environmentTraitCollection) == NO) {
[self asyncTraitCollectionDidChange];
}
} }
- (ASDisplayNode *)parent - (ASDisplayNode *)parent
@@ -2785,7 +2790,10 @@ static const char *ASDisplayNodeDrawingPriorityKey = "ASDrawingPriority";
- (void)setEnvironmentTraitCollection:(ASEnvironmentTraitCollection)environmentTraitCollection - (void)setEnvironmentTraitCollection:(ASEnvironmentTraitCollection)environmentTraitCollection
{ {
if (ASEnvironmentTraitCollectionIsEqualToASEnvironmentTraitCollection(environmentTraitCollection, _environmentState.environmentTraitCollection) == NO) {
_environmentState.environmentTraitCollection = environmentTraitCollection; _environmentState.environmentTraitCollection = environmentTraitCollection;
[self asyncTraitCollectionDidChange];
}
} }
ASEnvironmentLayoutOptionsForwarding ASEnvironmentLayoutOptionsForwarding
@@ -2797,6 +2805,11 @@ ASEnvironmentLayoutExtensibilityForwarding
return [ASTraitCollection traitCollectionWithASEnvironmentTraitCollection:self.environmentTraitCollection]; return [ASTraitCollection traitCollectionWithASEnvironmentTraitCollection:self.environmentTraitCollection];
} }
- (void)asyncTraitCollectionDidChange
{
}
#if TARGET_OS_TV #if TARGET_OS_TV
#pragma mark - UIFocusEnvironment Protocol (tvOS) #pragma mark - UIFocusEnvironment Protocol (tvOS)