Skip to content

Commit

Permalink
Support static values in NativeAnimated transforms on iOS
Browse files Browse the repository at this point in the history
Summary:
Support static values (non-animated) in transform config like Android already does.

**Test plan**
Tested in UIExplorer native animated example by adding a transform with a static value and comparing with JS.
Closes facebook#10664

Differential Revision: D4109515

fbshipit-source-id: 2d7de17d51d6df835c569fd45d2de8fc170bf928
  • Loading branch information
janicduplessis authored and Facebook Github Bot committed Nov 1, 2016
1 parent 2b49edd commit cdd2d79
Showing 1 changed file with 31 additions and 31 deletions.
62 changes: 31 additions & 31 deletions Libraries/NativeAnimation/Nodes/RCTTransformAnimatedNode.m
Original file line number Diff line number Diff line change
Expand Up @@ -38,47 +38,47 @@ - (void)performUpdate
NSArray<NSDictionary *> *transformConfigs = self.config[@"transforms"];
for (NSDictionary *transformConfig in transformConfigs) {
NSString *type = transformConfig[@"type"];
// TODO: Support static transform values.
if (![type isEqualToString: @"animated"]) {
continue;
}

NSNumber *nodeTag = transformConfig[@"nodeTag"];

RCTAnimatedNode *node = self.parentNodes[nodeTag];
if (node.hasUpdated && [node isKindOfClass:[RCTValueAnimatedNode class]]) {
NSString *property = transformConfig[@"property"];

CGFloat value;
if ([type isEqualToString: @"animated"]) {
NSNumber *nodeTag = transformConfig[@"nodeTag"];
RCTAnimatedNode *node = self.parentNodes[nodeTag];
if (!node.hasUpdated || ![node isKindOfClass:[RCTValueAnimatedNode class]]) {
continue;
}
RCTValueAnimatedNode *parentNode = (RCTValueAnimatedNode *)node;
value = parentNode.value;
} else {
value = [transformConfig[@"value"] floatValue];
}

NSString *property = transformConfig[@"property"];
CGFloat value = parentNode.value;

if ([property isEqualToString:@"scale"]) {
transform = CATransform3DScale(transform, value, value, 1);
if ([property isEqualToString:@"scale"]) {
transform = CATransform3DScale(transform, value, value, 1);

} else if ([property isEqualToString:@"scaleX"]) {
transform = CATransform3DScale(transform, value, 1, 1);
} else if ([property isEqualToString:@"scaleX"]) {
transform = CATransform3DScale(transform, value, 1, 1);

} else if ([property isEqualToString:@"scaleY"]) {
transform = CATransform3DScale(transform, 1, value, 1);
} else if ([property isEqualToString:@"scaleY"]) {
transform = CATransform3DScale(transform, 1, value, 1);

} else if ([property isEqualToString:@"translateX"]) {
transform = CATransform3DTranslate(transform, value, 0, 0);
} else if ([property isEqualToString:@"translateX"]) {
transform = CATransform3DTranslate(transform, value, 0, 0);

} else if ([property isEqualToString:@"translateY"]) {
transform = CATransform3DTranslate(transform, 0, value, 0);
} else if ([property isEqualToString:@"translateY"]) {
transform = CATransform3DTranslate(transform, 0, value, 0);

} else if ([property isEqualToString:@"rotate"]) {
transform = CATransform3DRotate(transform, value, 0, 0, 1);
} else if ([property isEqualToString:@"rotate"]) {
transform = CATransform3DRotate(transform, value, 0, 0, 1);

} else if ([property isEqualToString:@"rotateX"]) {
transform = CATransform3DRotate(transform, value, 1, 0, 0);
} else if ([property isEqualToString:@"rotateX"]) {
transform = CATransform3DRotate(transform, value, 1, 0, 0);

} else if ([property isEqualToString:@"rotateY"]) {
transform = CATransform3DRotate(transform, value, 0, 1, 0);
} else if ([property isEqualToString:@"rotateY"]) {
transform = CATransform3DRotate(transform, value, 0, 1, 0);

} else if ([property isEqualToString:@"perspective"]) {
transform.m34 = 1.0 / -value;
}
} else if ([property isEqualToString:@"perspective"]) {
transform.m34 = 1.0 / -value;
}
}

Expand Down

0 comments on commit cdd2d79

Please sign in to comment.