You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ac...@apache.org on 2017/08/03 09:51:19 UTC
[1/6] incubator-weex git commit: * [ios] add perspective support for
rotate3d
Repository: incubator-weex
Updated Branches:
refs/heads/0.16-dev e5f560e5c -> 199e4665d
* [ios] add perspective support for rotate3d
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/22965189
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/22965189
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/22965189
Branch: refs/heads/0.16-dev
Commit: 22965189432e5289bd96c4b435d3fafea8fa8bfc
Parents: 58aaee6
Author: acton393 <zh...@gmail.com>
Authored: Tue Jul 25 22:45:58 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Jul 25 22:45:58 2017 +0800
----------------------------------------------------------------------
.../Sources/Component/WXComponent_internal.h | 3 +++
ios/sdk/WeexSDK/Sources/Component/WXTransform.h | 1 +
ios/sdk/WeexSDK/Sources/Component/WXTransform.m | 14 +++++++++++++-
ios/sdk/WeexSDK/Sources/Model/WXComponent.m | 1 +
ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m | 6 +++++-
.../Sources/View/WXComponent+ViewManagement.m | 17 +++++++++++++++++
6 files changed, 40 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/22965189/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h b/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
index 7226ced..20fb87b 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
@@ -55,6 +55,9 @@
WXBoxShadow *_lastBoxShadow;
WXBoxShadow *_boxShadow;
+ // default is parallel projection, so this will be CGFLOAT_MAX
+ CGFloat _perspective;
+
/**
* accessibility support
*/
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/22965189/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.h b/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
index 75db1c7..e9e23c3 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
@@ -32,6 +32,7 @@
@property (nonatomic, strong, readonly) WXLength *translateY;
@property (nonatomic, assign, readonly) float scaleX;
@property (nonatomic, assign, readonly) float scaleY;
+@property (nonatomic, assign) float perspective;
- (instancetype)initWithCSSValue:(NSString *)cssValue origin:(NSString *)origin instance:(WXSDKInstance *)instance;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/22965189/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
index b6287e7..edd3177 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
@@ -43,6 +43,7 @@
float _rotateX;
float _rotateY;
float _rotateZ;
+ float _perspective;
CATransform3D _nativeTransform;
BOOL _useNativeTransform;
@@ -59,6 +60,9 @@
_rotateZ = 0.0;
_rotateAngle = 0.0;
+ // default is parallel projection
+ _perspective = CGFLOAT_MAX;
+
[self parseTransform:cssValue];
[self parseTransformOrigin:origin];
}
@@ -147,8 +151,8 @@
if (_useNativeTransform) {
return _nativeTransform;
}
- CATransform3D nativeTransform3d = [self nativeTransformWithoutRotateWithView:view];
+ CATransform3D nativeTransform3d = [self nativeTransformWithoutRotateWithView:view];
if (_rotateX != 0) {
CATransform3D rotateXTransform = CATransform3DMakeRotation(_rotateX, 1, 0, 0);
nativeTransform3d = CATransform3DConcat(nativeTransform3d, rotateXTransform);
@@ -169,6 +173,9 @@
{
CATransform3D nativeTansform3D = CATransform3DIdentity;
+ if (_perspective && !isinf(_perspective)) {
+ nativeTansform3D.m34 = -1.0/_perspective;
+ }
if (!view || view.bounds.size.width <= 0 || view.bounds.size.height <= 0) {
return nativeTansform3D;
}
@@ -224,6 +231,11 @@
}
CATransform3D nativeTransform3d = [self nativeTransformWithView:view];
if (!CATransform3DEqualToTransform(view.layer.transform, nativeTransform3d)){
+ CATransform3D presentationTransform = view.layer.presentationLayer.transform;
+ if (presentationTransform.m34 != 0) {
+ // just for perspective
+ nativeTransform3d = presentationTransform;
+ }
view.layer.transform = nativeTransform3d;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/22965189/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
index bd5549b..7634918 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
@@ -94,6 +94,7 @@
_ariaHidden = NO;
_async = NO;
+ _perspective = CGFLOAT_MAX;
//TODO set indicator style
if ([type isEqualToString:@"indicator"]) {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/22965189/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
index ff55ee2..7917d7f 100644
--- a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
+++ b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
@@ -85,7 +85,6 @@
- (void)animationDidStart:(CAAnimation *)anim
{
- [self applyTransform];
}
-(void)applyTransform
@@ -94,7 +93,9 @@
return;
}
if ([_animationInfo.propertyName hasPrefix:@"transform"]) {
+ float perspective = _animationInfo.target->_perspective;
WXTransform *transform = _animationInfo.target->_transform;
+ transform.perspective = perspective;
[transform applyTransformForView:_animationInfo.target.view];
} else if ([_animationInfo.propertyName isEqualToString:@"backgroundColor"]) {
_animationInfo.target.view.layer.backgroundColor = (__bridge CGColorRef _Nullable)(_animationInfo.toValue);
@@ -117,6 +118,8 @@
return;
}
+ [self applyTransform];
+
if ([_animationInfo.propertyName hasPrefix:@"bounds.size"]) {
/*
* http://ronnqvi.st/about-the-anchorpoint/
@@ -193,6 +196,7 @@ WX_EXPORT_METHOD(@selector(transition:args:callback:))
if ([property isEqualToString:@"transform"]) {
NSString *transformOrigin = styles[@"transformOrigin"];
WXTransform *wxTransform = [[WXTransform alloc] initWithCSSValue:value origin:transformOrigin instance:self.weexInstance];
+ wxTransform.perspective = target->_perspective;
WXTransform *oldTransform = target->_transform;
if (wxTransform.rotateAngle != oldTransform.rotateAngle) {
WXAnimationInfo *newInfo = [info copy];
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/22965189/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
index 40e9889..31385de 100644
--- a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
+++ b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
@@ -169,6 +169,14 @@ do {\
if (_boxShadow) {
_lastBoxShadow = _boxShadow;
}
+ if (styles[@"perspective"]) {
+ _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
+ if (_perspective <= 0) {
+ _perspective = CGFLOAT_MAX;
+ }
+
+ _transform.perspective = _perspective;
+ }
}
- (void)_updateViewStyles:(NSDictionary *)styles
@@ -227,6 +235,14 @@ do {\
});
}
+ if (styles[@"perspective"]) {
+ _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
+ if (_perspective <= 0) {
+ _perspective = CGFLOAT_MAX;
+ }
+ _transform.perspective = _perspective;
+ }
+
if (styles[@"visibility"]) {
_visibility = [WXConvert WXVisibility:styles[@"visibility"]];
if (_visibility == WXVisibilityShow) {
@@ -238,6 +254,7 @@ do {\
}
if (styles[@"transform"]) {
_transform = [[WXTransform alloc] initWithCSSValue:[WXConvert NSString:styles[@"transform"]] origin:[WXConvert NSString:self.styles[@"transformOrigin"]] instance:self.weexInstance];
+ _transform.perspective = _perspective;
if (!CGRectEqualToRect(self.calculatedFrame, CGRectZero)) {
[_transform applyTransformForView:_view];
[_layer setNeedsDisplay];
[4/6] incubator-weex git commit: * [ios] use perspective as transform
function but the css value
Posted by ac...@apache.org.
* [ios] use perspective as transform function but the css value
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/6cf70bb7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/6cf70bb7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/6cf70bb7
Branch: refs/heads/0.16-dev
Commit: 6cf70bb71cbb4d43827c24a166fcc4a909ab7c6c
Parents: 53e96f5
Author: acton393 <zh...@gmail.com>
Authored: Thu Jul 27 14:12:06 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Thu Jul 27 14:12:06 2017 +0800
----------------------------------------------------------------------
.../Sources/Component/WXComponent_internal.h | 3 ---
ios/sdk/WeexSDK/Sources/Component/WXTransform.m | 12 ++++++++++--
ios/sdk/WeexSDK/Sources/Model/WXComponent.m | 1 -
.../WeexSDK/Sources/Module/WXAnimationModule.m | 10 ++++++----
.../Sources/View/WXComponent+ViewManagement.m | 19 -------------------
5 files changed, 16 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6cf70bb7/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h b/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
index 20fb87b..7226ced 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
@@ -55,9 +55,6 @@
WXBoxShadow *_lastBoxShadow;
WXBoxShadow *_boxShadow;
- // default is parallel projection, so this will be CGFLOAT_MAX
- CGFloat _perspective;
-
/**
* accessibility support
*/
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6cf70bb7/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
index 0948905..9c055c2 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
@@ -230,8 +230,8 @@
[self setAnchorPoint:anchorPoint forView:view];
}
CATransform3D nativeTransform3d = [self nativeTransformWithView:view];
- if (!CATransform3DEqualToTransform(view.layer.transform, nativeTransform3d)){
- CATransform3D presentationTransform = view.layer.presentationLayer.transform;
+ CATransform3D presentationTransform = view.layer.presentationLayer.transform;
+ if (!CATransform3DEqualToTransform(view.layer.transform, nativeTransform3d) && !CATransform3DEqualToTransform(view.layer.transform, presentationTransform)){
if (presentationTransform.m34 != 0 && !isinf(_perspective)) {
// just for perspective
nativeTransform3d = presentationTransform;
@@ -342,6 +342,14 @@
_rotateZ = [self getAngle:value[0]];
}
+- (void)parsePerspective:(NSArray *)value
+{
+ _perspective = [value[0] doubleValue];
+ if (_perspective <= 0 ) {
+ _perspective = CGFLOAT_MAX;
+ }
+}
+
- (void)parseTranslate:(NSArray *)value
{
WXLength *translateX;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6cf70bb7/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
index 7634918..bd5549b 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
@@ -94,7 +94,6 @@
_ariaHidden = NO;
_async = NO;
- _perspective = CGFLOAT_MAX;
//TODO set indicator style
if ([type isEqualToString:@"indicator"]) {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6cf70bb7/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
index bd2c868..01bf984 100644
--- a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
+++ b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
@@ -94,9 +94,7 @@
return;
}
if ([_animationInfo.propertyName hasPrefix:@"transform"]) {
- float perspective = _animationInfo.target->_perspective;
WXTransform *transform = _animationInfo.target->_transform;
- transform.perspective = perspective;
[transform applyTransformForView:_animationInfo.target.view];
} else if ([_animationInfo.propertyName isEqualToString:@"backgroundColor"]) {
_animationInfo.target.view.layer.backgroundColor = (__bridge CGColorRef _Nullable)(_animationInfo.toValue);
@@ -119,7 +117,7 @@
return;
}
- float perspective = _animationInfo.target->_perspective;
+ float perspective = _animationInfo.target->_transform.perspective;
if (!isinf(perspective)) {
[self applyTransform];
}
@@ -200,7 +198,6 @@ WX_EXPORT_METHOD(@selector(transition:args:callback:))
if ([property isEqualToString:@"transform"]) {
NSString *transformOrigin = styles[@"transformOrigin"];
WXTransform *wxTransform = [[WXTransform alloc] initWithCSSValue:value origin:transformOrigin instance:self.weexInstance];
- wxTransform.perspective = target->_perspective;
WXTransform *oldTransform = target->_transform;
if (wxTransform.rotateAngle != oldTransform.rotateAngle) {
WXAnimationInfo *newInfo = [info copy];
@@ -373,6 +370,11 @@ WX_EXPORT_METHOD(@selector(transition:args:callback:))
[delegate applyTransform];
}
} else {
+ CATransform3D transform = layer.transform;
+ if (info.target->_transform.perspective && !isinf(info.target->_transform.perspective)) {
+ transform.m34 = -1.0/info.target->_transform.perspective*[UIScreen mainScreen].scale;
+ layer.transform = transform;
+ }
[layer addAnimation:animation forKey:info.propertyName];
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6cf70bb7/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
index 8f086d4..40e9889 100644
--- a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
+++ b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
@@ -169,15 +169,6 @@ do {\
if (_boxShadow) {
_lastBoxShadow = _boxShadow;
}
- if (styles[@"perspective"]) {
- // if the perspective is none, treated as 0
- _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
- if (_perspective <= 0) {
- _perspective = CGFLOAT_MAX;
- }
-
- _transform.perspective = _perspective;
- }
}
- (void)_updateViewStyles:(NSDictionary *)styles
@@ -236,15 +227,6 @@ do {\
});
}
- if (styles[@"perspective"]) {
- // if the perspective is none, treated as 0
- _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
- if (_perspective <= 0) {
- _perspective = CGFLOAT_MAX;
- }
- _transform.perspective = _perspective;
- }
-
if (styles[@"visibility"]) {
_visibility = [WXConvert WXVisibility:styles[@"visibility"]];
if (_visibility == WXVisibilityShow) {
@@ -256,7 +238,6 @@ do {\
}
if (styles[@"transform"]) {
_transform = [[WXTransform alloc] initWithCSSValue:[WXConvert NSString:styles[@"transform"]] origin:[WXConvert NSString:self.styles[@"transformOrigin"]] instance:self.weexInstance];
- _transform.perspective = _perspective;
if (!CGRectEqualToRect(self.calculatedFrame, CGRectZero)) {
[_transform applyTransformForView:_view];
[_layer setNeedsDisplay];
[6/6] incubator-weex git commit: Merge branch
'ios-feature-0.16-rotate-perspective' of
https://github.com/acton393/incubator-weex into wip-us-0.16-dev
Posted by ac...@apache.org.
Merge branch 'ios-feature-0.16-rotate-perspective' of https://github.com/acton393/incubator-weex into wip-us-0.16-dev
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/199e4665
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/199e4665
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/199e4665
Branch: refs/heads/0.16-dev
Commit: 199e4665d6df7cf8bf571caac2753ce167843e02
Parents: e5f560e af653d9
Author: acton393 <zh...@gmail.com>
Authored: Thu Aug 3 17:51:04 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Thu Aug 3 17:51:04 2017 +0800
----------------------------------------------------------------------
ios/sdk/WeexSDK/Sources/Component/WXTransform.h | 1 +
ios/sdk/WeexSDK/Sources/Component/WXTransform.m | 33 ++++++++++++++------
.../WeexSDK/Sources/Module/WXAnimationModule.m | 5 +++
3 files changed, 30 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
[5/6] incubator-weex git commit: * [ios] fix bug about rotate order
Posted by ac...@apache.org.
* [ios] fix bug about rotate order
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/af653d98
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/af653d98
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/af653d98
Branch: refs/heads/0.16-dev
Commit: af653d98f3867dbda5ba1e34218f6d75b968accd
Parents: 6cf70bb
Author: acton393 <zh...@gmail.com>
Authored: Thu Jul 27 22:23:52 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Thu Jul 27 22:23:52 2017 +0800
----------------------------------------------------------------------
ios/sdk/WeexSDK/Sources/Component/WXTransform.m | 23 ++++++++------------
.../WeexSDK/Sources/Module/WXAnimationModule.m | 5 -----
2 files changed, 9 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/af653d98/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
index 9c055c2..5267f90 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
@@ -153,17 +153,17 @@
}
CATransform3D nativeTransform3d = [self nativeTransformWithoutRotateWithView:view];
- if (_rotateX != 0) {
- CATransform3D rotateXTransform = CATransform3DMakeRotation(_rotateX, 1, 0, 0);
- nativeTransform3d = CATransform3DConcat(nativeTransform3d, rotateXTransform);
+
+ if (_rotateAngle != 0 || _rotateZ != 0) {
+ nativeTransform3d = CATransform3DRotate(nativeTransform3d, _rotateAngle?:_rotateZ, 0, 0, 1);
}
+
if (_rotateY != 0) {
- CATransform3D rotateYTransform = CATransform3DMakeRotation(_rotateY, 0, 1, 0);
- nativeTransform3d = CATransform3DConcat(nativeTransform3d, rotateYTransform);
+ nativeTransform3d = CATransform3DRotate(nativeTransform3d, _rotateY, 0, 1, 0);
}
- if (_rotateAngle != 0 || _rotateZ != 0) {
- CATransform3D rotateZTransform = CATransform3DMakeRotation(_rotateAngle?:_rotateZ, 0, 0, 1);
- nativeTransform3d = CATransform3DConcat(nativeTransform3d, rotateZTransform);
+
+ if (_rotateX != 0) {
+ nativeTransform3d = CATransform3DRotate(nativeTransform3d, _rotateX, 1, 0, 0);
}
return nativeTransform3d;
@@ -230,12 +230,7 @@
[self setAnchorPoint:anchorPoint forView:view];
}
CATransform3D nativeTransform3d = [self nativeTransformWithView:view];
- CATransform3D presentationTransform = view.layer.presentationLayer.transform;
- if (!CATransform3DEqualToTransform(view.layer.transform, nativeTransform3d) && !CATransform3DEqualToTransform(view.layer.transform, presentationTransform)){
- if (presentationTransform.m34 != 0 && !isinf(_perspective)) {
- // just for perspective
- nativeTransform3d = presentationTransform;
- }
+ if (!CATransform3DEqualToTransform(view.layer.transform, nativeTransform3d)){
view.layer.transform = nativeTransform3d;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/af653d98/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
index 01bf984..38651e0 100644
--- a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
+++ b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
@@ -117,11 +117,6 @@
return;
}
- float perspective = _animationInfo.target->_transform.perspective;
- if (!isinf(perspective)) {
- [self applyTransform];
- }
-
if ([_animationInfo.propertyName hasPrefix:@"bounds.size"]) {
/*
* http://ronnqvi.st/about-the-anchorpoint/
[2/6] incubator-weex git commit: * [ios] apply transform when stop
animation and start animation
Posted by ac...@apache.org.
* [ios] apply transform when stop animation and start animation
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/2ad05e5a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/2ad05e5a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/2ad05e5a
Branch: refs/heads/0.16-dev
Commit: 2ad05e5a5c779b56b75c68d55ea6c76bf349daf2
Parents: 2296518
Author: acton393 <zh...@gmail.com>
Authored: Wed Jul 26 11:39:16 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Wed Jul 26 11:39:16 2017 +0800
----------------------------------------------------------------------
ios/sdk/WeexSDK/Sources/Component/WXTransform.m | 4 ++--
ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m | 6 +++++-
2 files changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2ad05e5a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
index edd3177..0948905 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
@@ -174,7 +174,7 @@
CATransform3D nativeTansform3D = CATransform3DIdentity;
if (_perspective && !isinf(_perspective)) {
- nativeTansform3D.m34 = -1.0/_perspective;
+ nativeTansform3D.m34 = -1.0/_perspective*[UIScreen mainScreen].scale;
}
if (!view || view.bounds.size.width <= 0 || view.bounds.size.height <= 0) {
return nativeTansform3D;
@@ -232,7 +232,7 @@
CATransform3D nativeTransform3d = [self nativeTransformWithView:view];
if (!CATransform3DEqualToTransform(view.layer.transform, nativeTransform3d)){
CATransform3D presentationTransform = view.layer.presentationLayer.transform;
- if (presentationTransform.m34 != 0) {
+ if (presentationTransform.m34 != 0 && !isinf(_perspective)) {
// just for perspective
nativeTransform3d = presentationTransform;
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2ad05e5a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
index 7917d7f..bd2c868 100644
--- a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
+++ b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
@@ -85,6 +85,7 @@
- (void)animationDidStart:(CAAnimation *)anim
{
+ [self applyTransform];
}
-(void)applyTransform
@@ -118,7 +119,10 @@
return;
}
- [self applyTransform];
+ float perspective = _animationInfo.target->_perspective;
+ if (!isinf(perspective)) {
+ [self applyTransform];
+ }
if ([_animationInfo.propertyName hasPrefix:@"bounds.size"]) {
/*
[3/6] incubator-weex git commit: * [ios] comment about none value
@nodanger
Posted by ac...@apache.org.
* [ios] comment about none value @nodanger
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/53e96f54
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/53e96f54
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/53e96f54
Branch: refs/heads/0.16-dev
Commit: 53e96f54f657bd16c3d532ac558013e459a01fb6
Parents: 2ad05e5
Author: acton393 <zh...@gmail.com>
Authored: Wed Jul 26 16:33:55 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Wed Jul 26 16:33:55 2017 +0800
----------------------------------------------------------------------
ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/53e96f54/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
index 31385de..8f086d4 100644
--- a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
+++ b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
@@ -170,6 +170,7 @@ do {\
_lastBoxShadow = _boxShadow;
}
if (styles[@"perspective"]) {
+ // if the perspective is none, treated as 0
_perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
if (_perspective <= 0) {
_perspective = CGFLOAT_MAX;
@@ -236,11 +237,12 @@ do {\
}
if (styles[@"perspective"]) {
+ // if the perspective is none, treated as 0
_perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
if (_perspective <= 0) {
_perspective = CGFLOAT_MAX;
}
- _transform.perspective = _perspective;
+ _transform.perspective = _perspective;
}
if (styles[@"visibility"]) {