diff --git a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m index 36b2d78d89..7c774554ad 100644 --- a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m +++ b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m @@ -25,6 +25,7 @@ #import "WXUtility.h" #import "WXLength.h" #import "WXTransition.h" +#import "WXComponent+Layout.h" @interface WXAnimationInfo : NSObject @@ -332,7 +333,16 @@ - (void)transitionWithArgs:(NSDictionary *)args withProperty:(NSString *)propert transitionDic:(NSMutableDictionary*)transitionDic { [transition.filterStyles setObject:args[@"styles"][property] forKey:property]; - [transition.oldFilterStyles setObject:target.styles[property] ?:@0 forKey:property]; + + id oldStyleValue = target.styles[property]; + if (oldStyleValue == nil) { + oldStyleValue = [target convertLayoutValueToStyleValue:property]; + } + if (oldStyleValue == nil) { + oldStyleValue = @"0.0"; + } + [transition.oldFilterStyles setObject:oldStyleValue ?:@0 forKey:property]; + [target _modifyStyles:@{property:args[@"styles"][property]}]; [transitionDic setObject:@([args[@"duration"] doubleValue]) forKey:kWXTransitionDuration]; [transitionDic setObject:@([args[@"delay"] doubleValue]) forKey:kWXTransitionDelay];