You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by so...@apache.org on 2017/04/26 06:56:47 UTC
[25/50] [abbrv] incubator-weex git commit: * [ios] bug fix about
gradient background-image
* [ios] bug fix about gradient background-image
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/db03bb05
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/db03bb05
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/db03bb05
Branch: refs/heads/dev
Commit: db03bb0535badc788302ad2934ba6635537d2766
Parents: 536beb0
Author: acton393 <zh...@gmail.com>
Authored: Sun Apr 23 00:14:34 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Sun Apr 23 00:14:34 2017 +0800
----------------------------------------------------------------------
.../Sources/Component/WXComponent_internal.h | 1 -
ios/sdk/WeexSDK/Sources/Model/WXComponent.m | 23 +++++++++++---------
.../Sources/View/WXComponent+ViewManagement.m | 1 -
3 files changed, 13 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/db03bb05/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 31cdc7c..21d510e 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
@@ -47,7 +47,6 @@
*/
UIColor *_backgroundColor;
NSString *_backgroundImage;
- CAGradientLayer * _gradientLayer;
WXClipType _clipToBounds;
UIView *_view;
CGFloat _opacity;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/db03bb05/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 c90d499..e563f82 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
@@ -483,20 +483,14 @@
__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{
__strong typeof(self) strongSelf = weakSelf;
- /*
- must insert the gradientLayer at index 0, and then set masksToBounds to match the view bounds
- or the subview will be invisible
- */
-
if(strongSelf) {
UIColor * startColor = (UIColor*)linearGradient[@"startColor"];
UIColor * endColor = (UIColor*)linearGradient[@"endColor"];
- if (_gradientLayer && [strongSelf.view.layer.sublayers containsObject:_gradientLayer]) {
- [_gradientLayer removeFromSuperlayer];
+ CAGradientLayer * gradientLayer = [WXUtility gradientLayerFromColors:@[startColor, endColor] locations:nil frame:strongSelf.view.bounds gradientType:[linearGradient[@"gradientType"] integerValue]];
+ if (gradientLayer) {
+ _backgroundColor = [UIColor colorWithPatternImage:[strongSelf imageFromLayer:gradientLayer]];
+ strongSelf.view.backgroundColor = _backgroundColor;
}
- _gradientLayer = [WXUtility gradientLayerFromColors:@[startColor, endColor] locations:nil frame:strongSelf.view.bounds gradientType:[linearGradient[@"gradientType"] integerValue]];
- [strongSelf.view.layer insertSublayer:_gradientLayer atIndex:0];
- strongSelf.view.layer.masksToBounds = YES;
}
});
}
@@ -527,6 +521,15 @@
}
}
+- (UIImage *)imageFromLayer:(CALayer *)layer
+{
+ UIGraphicsBeginImageContextWithOptions(layer.frame.size, NO, 0);
+ [layer renderInContext:UIGraphicsGetCurrentContext()];
+ UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();
+ UIGraphicsEndImageContext();
+ return outputImage;
+}
+
#pragma mark Reset
- (void)resetStyles:(NSArray *)styles
{
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/db03bb05/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 88f03d4..c93df20 100644
--- a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
+++ b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
@@ -236,7 +236,6 @@
_view = nil;
[_layer removeFromSuperlayer];
_layer = nil;
- _gradientLayer = nil;
[self viewDidUnload];
}