From bcf2368fabd3535f674e4650fce1714b60dadb0f Mon Sep 17 00:00:00 2001 From: Julius Parishy Date: Sat, 28 Mar 2015 20:05:46 -0400 Subject: [PATCH 1/4] Add custom property for rotation to RCTViewManager.m According to http://facebook.github.io/react-native/docs/view.html view's should be able to style their transform using a number value for rotation. This adds the necessary custom view property for rotation since it was missing. The value is measured in radians. --- React/Views/RCTViewManager.m | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/React/Views/RCTViewManager.m b/React/Views/RCTViewManager.m index fa9975ac8e5283..1c134c72223e3b 100644 --- a/React/Views/RCTViewManager.m +++ b/React/Views/RCTViewManager.m @@ -82,6 +82,13 @@ - (RCTViewManagerUIBlock)uiBlockToAmendWithShadowViewRegistry:(RCTSparseArray *) RCT_REMAP_VIEW_PROPERTY(shadowOpacity, layer.shadowOpacity, CGFloat) RCT_REMAP_VIEW_PROPERTY(shadowRadius, layer.shadowRadius, CGFloat) RCT_REMAP_VIEW_PROPERTY(transformMatrix, layer.transform, CATransform3D) +RCT_CUSTOM_VIEW_PROPERTY(rotation, CGFloat, RCTView) +{ + CGFloat angle = [RCTConvert CGFloat:json]; + CGAffineTransform transform = CGAffineTransformRotate(view.transform, angle); + + view.transform = transform; +} RCT_CUSTOM_VIEW_PROPERTY(overflow, css_overflow, RCTView) { view.clipsToBounds = json ? ![RCTConvert css_overflow:json] : defaultView.clipsToBounds; From a5fb1305ea9f65d1d02deb4a7912e390424624e1 Mon Sep 17 00:00:00 2001 From: Julius Parishy Date: Sat, 28 Mar 2015 20:12:12 -0400 Subject: [PATCH 2/4] Export the rotation property in RCTViewManager.m According to the docs: http://facebook.github.io/react-native/docs/view.html There should be a rotation property available for styling views. This exports that property as a CGFloat and the value is measured in radians. --- React/Views/RCTViewManager.m | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/React/Views/RCTViewManager.m b/React/Views/RCTViewManager.m index 1c134c72223e3b..fc890f317e2e6e 100644 --- a/React/Views/RCTViewManager.m +++ b/React/Views/RCTViewManager.m @@ -84,10 +84,16 @@ - (RCTViewManagerUIBlock)uiBlockToAmendWithShadowViewRegistry:(RCTSparseArray *) RCT_REMAP_VIEW_PROPERTY(transformMatrix, layer.transform, CATransform3D) RCT_CUSTOM_VIEW_PROPERTY(rotation, CGFloat, RCTView) { + if(json) + { CGFloat angle = [RCTConvert CGFloat:json]; CGAffineTransform transform = CGAffineTransformRotate(view.transform, angle); - view.transform = transform; + } + else + { + view.transform = defaultView.transform; + } } RCT_CUSTOM_VIEW_PROPERTY(overflow, css_overflow, RCTView) { From b4e7e419d6bf3d55eecc61ac7ec499113a926ca8 Mon Sep 17 00:00:00 2001 From: Julius Parishy Date: Sat, 28 Mar 2015 20:35:02 -0400 Subject: [PATCH 3/4] Inline the brackets for the if-else statement --- React/Views/RCTViewManager.m | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/React/Views/RCTViewManager.m b/React/Views/RCTViewManager.m index fc890f317e2e6e..6348f13dbedd24 100644 --- a/React/Views/RCTViewManager.m +++ b/React/Views/RCTViewManager.m @@ -84,14 +84,11 @@ - (RCTViewManagerUIBlock)uiBlockToAmendWithShadowViewRegistry:(RCTSparseArray *) RCT_REMAP_VIEW_PROPERTY(transformMatrix, layer.transform, CATransform3D) RCT_CUSTOM_VIEW_PROPERTY(rotation, CGFloat, RCTView) { - if(json) - { + if(json) { CGFloat angle = [RCTConvert CGFloat:json]; CGAffineTransform transform = CGAffineTransformRotate(view.transform, angle); view.transform = transform; - } - else - { + } else { view.transform = defaultView.transform; } } From 0bd79d2fb276c23a7d730f99bc4f31a9197f3025 Mon Sep 17 00:00:00 2001 From: Julius Parishy Date: Sat, 28 Mar 2015 20:36:27 -0400 Subject: [PATCH 4/4] Space after if statement to match FB sytle --- React/Views/RCTViewManager.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/React/Views/RCTViewManager.m b/React/Views/RCTViewManager.m index 6348f13dbedd24..ccba8d34917fa4 100644 --- a/React/Views/RCTViewManager.m +++ b/React/Views/RCTViewManager.m @@ -84,7 +84,7 @@ - (RCTViewManagerUIBlock)uiBlockToAmendWithShadowViewRegistry:(RCTSparseArray *) RCT_REMAP_VIEW_PROPERTY(transformMatrix, layer.transform, CATransform3D) RCT_CUSTOM_VIEW_PROPERTY(rotation, CGFloat, RCTView) { - if(json) { + if (json) { CGFloat angle = [RCTConvert CGFloat:json]; CGAffineTransform transform = CGAffineTransformRotate(view.transform, angle); view.transform = transform;