Layout transition can measure in background

This commit is contained in:
Huy Nguyen
2016-03-02 22:43:28 -08:00
parent 9162d7b2df
commit 5e49cc4382
2 changed files with 10 additions and 5 deletions

View File

@@ -658,12 +658,16 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c)
- (ASLayout *)transitionLayoutWithSizeRange:(ASSizeRange)constrainedSize animated:(BOOL)animated
{
_usesImplicitHierarchyManagement = YES; // Temporary flag for 1.9.x
self.usesImplicitHierarchyManagement = YES; // Temporary flag for 1.9.x
return [self measureWithSizeRange:constrainedSize completion:^{
_usesImplicitHierarchyManagement = NO; // Temporary flag for 1.9.x
_transitionContext = [[_ASTransitionContext alloc] initWithAnimation:animated delegate:self];
[self __implicitlyInsertSubnodes];
[self animateLayoutTransition:_transitionContext];
self.usesImplicitHierarchyManagement = NO; // Temporary flag for 1.9.x
ASPerformBlockOnMainThread(^{
_transitionContext = [[_ASTransitionContext alloc] initWithAnimation:animated delegate:self];
[self __implicitlyInsertSubnodes];
[self animateLayoutTransition:_transitionContext];
});
}];
}

View File

@@ -103,6 +103,7 @@ FOUNDATION_EXPORT NSString * const ASRenderingEngineDidDisplayNodesScheduledBefo
UIEdgeInsets _hitTestSlop;
NSMutableArray *_subnodes;
// Main thread only
_ASTransitionContext *_transitionContext;
BOOL _usesImplicitHierarchyManagement;