From bbc1aecf95da2dd4f888fde5b36736c93d78ddf8 Mon Sep 17 00:00:00 2001 From: Adlai Holler Date: Mon, 13 Feb 2017 13:34:53 -0800 Subject: [PATCH] Deprecate shouldRasterizeDescendants (#3024) * Deprecate shouldRasterizeDescendants * Set superclass right --- AsyncDisplayKit.xcodeproj/project.pbxproj | 8 ++++---- AsyncDisplayKit/ASDisplayNode+Beta.h | 2 +- .../Details/_ASDisplayViewAccessiblity.mm | 1 + AsyncDisplayKit/Private/ASDisplayNodeInternal.h | 6 ++++++ ...{ASDisplayNodeTests.m => ASDisplayNodeTests.mm} | 1 + AsyncDisplayKitTests/ASDisplayNodeTestsHelper.h | 4 ++++ AsyncDisplayKitTests/ASSnapshotTestCase.h | 6 ------ examples/ASDKgram/Sample/CommentsNode.h | 2 +- examples/ASDKgram/Sample/PhotoCellNode.m | 2 +- .../SocialAppLayout-Inverted/Sample/PostNode.m | 6 ++++++ .../Sample/ViewController.m | 14 -------------- examples/SocialAppLayout/Sample/PostNode.m | 6 ++++++ examples/SocialAppLayout/Sample/ViewController.m | 14 -------------- 13 files changed, 31 insertions(+), 41 deletions(-) rename AsyncDisplayKitTests/{ASDisplayNodeTests.m => ASDisplayNodeTests.mm} (99%) diff --git a/AsyncDisplayKit.xcodeproj/project.pbxproj b/AsyncDisplayKit.xcodeproj/project.pbxproj index 8be62bc29b..b8193331e8 100644 --- a/AsyncDisplayKit.xcodeproj/project.pbxproj +++ b/AsyncDisplayKit.xcodeproj/project.pbxproj @@ -24,7 +24,7 @@ 058D09CA195D04C000B7D73C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 058D09C8195D04C000B7D73C /* InfoPlist.strings */; }; 058D0A38195D057000B7D73C /* ASDisplayLayerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 058D0A2D195D057000B7D73C /* ASDisplayLayerTests.m */; }; 058D0A39195D057000B7D73C /* ASDisplayNodeAppearanceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 058D0A2E195D057000B7D73C /* ASDisplayNodeAppearanceTests.m */; }; - 058D0A3A195D057000B7D73C /* ASDisplayNodeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 058D0A2F195D057000B7D73C /* ASDisplayNodeTests.m */; }; + 058D0A3A195D057000B7D73C /* ASDisplayNodeTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 058D0A2F195D057000B7D73C /* ASDisplayNodeTests.mm */; }; 058D0A3B195D057000B7D73C /* ASDisplayNodeTestsHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 058D0A31195D057000B7D73C /* ASDisplayNodeTestsHelper.m */; }; 058D0A3C195D057000B7D73C /* ASMutableAttributedStringBuilderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 058D0A32195D057000B7D73C /* ASMutableAttributedStringBuilderTests.m */; }; 058D0A3D195D057000B7D73C /* ASTextKitCoreTextAdditionsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 058D0A33195D057000B7D73C /* ASTextKitCoreTextAdditionsTests.m */; }; @@ -460,7 +460,7 @@ 058D0A12195D050800B7D73C /* ASThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASThread.h; sourceTree = ""; }; 058D0A2D195D057000B7D73C /* ASDisplayLayerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ASDisplayLayerTests.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 058D0A2E195D057000B7D73C /* ASDisplayNodeAppearanceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ASDisplayNodeAppearanceTests.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - 058D0A2F195D057000B7D73C /* ASDisplayNodeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASDisplayNodeTests.m; sourceTree = ""; }; + 058D0A2F195D057000B7D73C /* ASDisplayNodeTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASDisplayNodeTests.mm; sourceTree = ""; }; 058D0A30195D057000B7D73C /* ASDisplayNodeTestsHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASDisplayNodeTestsHelper.h; sourceTree = ""; }; 058D0A31195D057000B7D73C /* ASDisplayNodeTestsHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASDisplayNodeTestsHelper.m; sourceTree = ""; }; 058D0A32195D057000B7D73C /* ASMutableAttributedStringBuilderTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASMutableAttributedStringBuilderTests.m; sourceTree = ""; }; @@ -991,7 +991,7 @@ ACF6ED541B178DC700DA7C62 /* ASDimensionTests.mm */, 058D0A2D195D057000B7D73C /* ASDisplayLayerTests.m */, 058D0A2E195D057000B7D73C /* ASDisplayNodeAppearanceTests.m */, - 058D0A2F195D057000B7D73C /* ASDisplayNodeTests.m */, + 058D0A2F195D057000B7D73C /* ASDisplayNodeTests.mm */, 69B225661D72535E00B25B22 /* ASDisplayNodeLayoutTests.mm */, 058D0A30195D057000B7D73C /* ASDisplayNodeTestsHelper.h */, 058D0A31195D057000B7D73C /* ASDisplayNodeTestsHelper.m */, @@ -1746,8 +1746,8 @@ 058D0A39195D057000B7D73C /* ASDisplayNodeAppearanceTests.m in Sources */, CCB2F34D1D63CCC6004E6DE9 /* ASDisplayNodeSnapshotTests.m in Sources */, AE6987C11DD04E1000B9E458 /* ASPagerNodeTests.m in Sources */, - 058D0A3A195D057000B7D73C /* ASDisplayNodeTests.m in Sources */, 699B83511E3C1BA500433FA4 /* ASLayoutSpecTests.m in Sources */, + 058D0A3A195D057000B7D73C /* ASDisplayNodeTests.mm in Sources */, 696FCB311D6E46050093471E /* ASBackgroundLayoutSpecSnapshotTests.mm in Sources */, 69FEE53D1D95A9AF0086F066 /* ASLayoutElementStyleTests.m in Sources */, CC4981B31D1A02BE004E13CC /* ASTableViewThrashTests.m in Sources */, diff --git a/AsyncDisplayKit/ASDisplayNode+Beta.h b/AsyncDisplayKit/ASDisplayNode+Beta.h index e34ed968ed..f088b05e6e 100644 --- a/AsyncDisplayKit/ASDisplayNode+Beta.h +++ b/AsyncDisplayKit/ASDisplayNode+Beta.h @@ -148,7 +148,7 @@ typedef struct { * Note: this has nothing to do with -[CALayer shouldRasterize], which doesn't work with ASDisplayNode's asynchronous * rendering model. */ -@property (nonatomic, assign) BOOL shouldRasterizeDescendants; +@property (nonatomic, assign) BOOL shouldRasterizeDescendants ASDISPLAYNODE_DEPRECATED_MSG("Deprecated in version 2.2"); @end diff --git a/AsyncDisplayKit/Details/_ASDisplayViewAccessiblity.mm b/AsyncDisplayKit/Details/_ASDisplayViewAccessiblity.mm index aa9488b739..b6d174a5de 100644 --- a/AsyncDisplayKit/Details/_ASDisplayViewAccessiblity.mm +++ b/AsyncDisplayKit/Details/_ASDisplayViewAccessiblity.mm @@ -14,6 +14,7 @@ #import #import #import +#import #pragma mark - UIAccessibilityElement diff --git a/AsyncDisplayKit/Private/ASDisplayNodeInternal.h b/AsyncDisplayKit/Private/ASDisplayNodeInternal.h index aee6b2655b..15f0257a83 100644 --- a/AsyncDisplayKit/Private/ASDisplayNodeInternal.h +++ b/AsyncDisplayKit/Private/ASDisplayNodeInternal.h @@ -283,6 +283,12 @@ FOUNDATION_EXPORT NSString * const ASRenderingEngineDidDisplayNodesScheduledBefo */ - (ASPrimitiveTraitCollection)primitiveTraitCollection; +/** + * This is a non-deprecated internal declaration of the property. Public declaration + * is in ASDisplayNode+Beta.h + */ +@property (nonatomic, assign) BOOL shouldRasterizeDescendants; + @end NS_ASSUME_NONNULL_END diff --git a/AsyncDisplayKitTests/ASDisplayNodeTests.m b/AsyncDisplayKitTests/ASDisplayNodeTests.mm similarity index 99% rename from AsyncDisplayKitTests/ASDisplayNodeTests.m rename to AsyncDisplayKitTests/ASDisplayNodeTests.mm index 1dfcfaac43..aabe79de5d 100644 --- a/AsyncDisplayKitTests/ASDisplayNodeTests.m +++ b/AsyncDisplayKitTests/ASDisplayNodeTests.mm @@ -18,6 +18,7 @@ #import #import #import +#import #import "ASDisplayNodeTestsHelper.h" #import #import diff --git a/AsyncDisplayKitTests/ASDisplayNodeTestsHelper.h b/AsyncDisplayKitTests/ASDisplayNodeTestsHelper.h index 618d82df94..21a149e4b2 100644 --- a/AsyncDisplayKitTests/ASDisplayNodeTestsHelper.h +++ b/AsyncDisplayKitTests/ASDisplayNodeTestsHelper.h @@ -15,7 +15,11 @@ typedef BOOL (^as_condition_block_t)(void); +ASDISPLAYNODE_EXTERN_C_BEGIN + BOOL ASDisplayNodeRunRunLoopUntilBlockIsTrue(as_condition_block_t block); void ASDisplayNodeSizeToFitSize(ASDisplayNode *node, CGSize size); void ASDisplayNodeSizeToFitSizeRange(ASDisplayNode *node, ASSizeRange sizeRange); + +ASDISPLAYNODE_EXTERN_C_END diff --git a/AsyncDisplayKitTests/ASSnapshotTestCase.h b/AsyncDisplayKitTests/ASSnapshotTestCase.h index d3f6791d86..501b523a3d 100644 --- a/AsyncDisplayKitTests/ASSnapshotTestCase.h +++ b/AsyncDisplayKitTests/ASSnapshotTestCase.h @@ -19,12 +19,6 @@ NSOrderedSet *ASSnapshotTestCaseDefaultSuffixes(void); { \ [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \ FBSnapshotVerifyLayerWithOptions(node__.layer, identifier__, ASSnapshotTestCaseDefaultSuffixes(), 0) \ - [node__ setShouldRasterizeDescendants:YES]; \ - [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \ - FBSnapshotVerifyLayerWithOptions(node__.layer, identifier__, ASSnapshotTestCaseDefaultSuffixes(), 0) \ - [node__ setShouldRasterizeDescendants:NO]; \ - [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \ - FBSnapshotVerifyLayerWithOptions(node__.layer, identifier__, ASSnapshotTestCaseDefaultSuffixes(), 0) \ } #define ASSnapshotVerifyLayer(layer__, identifier__) \ diff --git a/examples/ASDKgram/Sample/CommentsNode.h b/examples/ASDKgram/Sample/CommentsNode.h index 3b0bbff424..2e8a9b2157 100644 --- a/examples/ASDKgram/Sample/CommentsNode.h +++ b/examples/ASDKgram/Sample/CommentsNode.h @@ -20,7 +20,7 @@ #import #import "CommentFeedModel.h" -@interface CommentsNode : ASTextCellNode +@interface CommentsNode : ASDisplayNode - (void)updateWithCommentFeedModel:(CommentFeedModel *)feed; diff --git a/examples/ASDKgram/Sample/PhotoCellNode.m b/examples/ASDKgram/Sample/PhotoCellNode.m index f3f8246459..a0b13fc04b 100644 --- a/examples/ASDKgram/Sample/PhotoCellNode.m +++ b/examples/ASDKgram/Sample/PhotoCellNode.m @@ -100,7 +100,7 @@ _photoCommentsNode = [[CommentsNode alloc] init]; - _photoCommentsNode.shouldRasterizeDescendants = YES; + _photoCommentsNode.layerBacked = YES; // instead of adding everything addSubnode: self.automaticallyManagesSubnodes = YES; diff --git a/examples/SocialAppLayout-Inverted/Sample/PostNode.m b/examples/SocialAppLayout-Inverted/Sample/PostNode.m index a40e231c05..6323e2df01 100644 --- a/examples/SocialAppLayout-Inverted/Sample/PostNode.m +++ b/examples/SocialAppLayout-Inverted/Sample/PostNode.m @@ -50,6 +50,8 @@ if (self) { _post = post; + self.selectionStyle = UITableViewCellSelectionStyleNone; + // Name node _nameNode = [[ASTextNode alloc] init]; _nameNode.attributedText = [[NSAttributedString alloc] initWithString:_post.name attributes:[TextStyles nameStyle]]; @@ -180,6 +182,10 @@ _optionsNode = [[ASImageNode alloc] init]; _optionsNode.image = [UIImage imageNamed:@"icon_more"]; [self addSubnode:_optionsNode]; + + for (ASDisplayNode *node in self.subnodes) { + node.layerBacked = YES; + } } return self; } diff --git a/examples/SocialAppLayout-Inverted/Sample/ViewController.m b/examples/SocialAppLayout-Inverted/Sample/ViewController.m index 6e73b9e801..6bc0d48a2d 100644 --- a/examples/SocialAppLayout-Inverted/Sample/ViewController.m +++ b/examples/SocialAppLayout-Inverted/Sample/ViewController.m @@ -149,18 +149,4 @@ return self.socialAppDataSource.count; } -- (void)tableNode:(ASTableNode *)tableNode didSelectRowAtIndexPath:(NSIndexPath *)indexPath -{ - PostNode *postNode = (PostNode *)[_tableNode nodeForRowAtIndexPath:indexPath]; - Post *post = self.socialAppDataSource[indexPath.row]; - - BOOL shouldRasterize = postNode.shouldRasterizeDescendants; - shouldRasterize = !shouldRasterize; - postNode.shouldRasterizeDescendants = shouldRasterize; - - NSLog(@"%@ rasterization for %@'s post: %@", shouldRasterize ? @"Enabling" : @"Disabling", post.name, postNode); - - [tableNode deselectRowAtIndexPath:indexPath animated:YES]; -} - @end diff --git a/examples/SocialAppLayout/Sample/PostNode.m b/examples/SocialAppLayout/Sample/PostNode.m index a40e231c05..d1b4a9cba1 100644 --- a/examples/SocialAppLayout/Sample/PostNode.m +++ b/examples/SocialAppLayout/Sample/PostNode.m @@ -50,6 +50,8 @@ if (self) { _post = post; + self.selectionStyle = UITableViewCellSelectionStyleNone; + // Name node _nameNode = [[ASTextNode alloc] init]; _nameNode.attributedText = [[NSAttributedString alloc] initWithString:_post.name attributes:[TextStyles nameStyle]]; @@ -180,6 +182,10 @@ _optionsNode = [[ASImageNode alloc] init]; _optionsNode.image = [UIImage imageNamed:@"icon_more"]; [self addSubnode:_optionsNode]; + + for (ASDisplayNode *node in self.subnodes) { + node.layerBacked = YES; + } } return self; } diff --git a/examples/SocialAppLayout/Sample/ViewController.m b/examples/SocialAppLayout/Sample/ViewController.m index 71458a1ae8..28bdf90283 100644 --- a/examples/SocialAppLayout/Sample/ViewController.m +++ b/examples/SocialAppLayout/Sample/ViewController.m @@ -133,18 +133,4 @@ return self.socialAppDataSource.count; } -- (void)tableNode:(ASTableNode *)tableNode didSelectRowAtIndexPath:(NSIndexPath *)indexPath -{ - PostNode *postNode = (PostNode *)[_tableNode nodeForRowAtIndexPath:indexPath]; - Post *post = self.socialAppDataSource[indexPath.row]; - - BOOL shouldRasterize = postNode.shouldRasterizeDescendants; - shouldRasterize = !shouldRasterize; - postNode.shouldRasterizeDescendants = shouldRasterize; - - NSLog(@"%@ rasterization for %@'s post: %@", shouldRasterize ? @"Enabling" : @"Disabling", post.name, postNode); - - [tableNode deselectRowAtIndexPath:indexPath animated:YES]; -} - @end