* [ios] fix issue https://issues.apache.org/jira/browse/WEEX-81 that box-shadow is abnormal in border-radius
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/dea22e93 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/dea22e93 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/dea22e93 Branch: refs/heads/release Commit: dea22e93d70e98f26bf5ceea8720dc0d96514d17 Parents: 12a978d Author: acton393 <zhangxing610...@gmail.com> Authored: Fri Oct 13 16:35:03 2017 +0800 Committer: gurisxie <279483...@qq.com> Committed: Mon Oct 16 14:27:12 2017 +0800 ---------------------------------------------------------------------- ios/sdk/WeexSDK/Sources/Display/WXComponent+BoxShadow.m | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/dea22e93/ios/sdk/WeexSDK/Sources/Display/WXComponent+BoxShadow.m ---------------------------------------------------------------------- diff --git a/ios/sdk/WeexSDK/Sources/Display/WXComponent+BoxShadow.m b/ios/sdk/WeexSDK/Sources/Display/WXComponent+BoxShadow.m index a72e556..fb0c0b3 100644 --- a/ios/sdk/WeexSDK/Sources/Display/WXComponent+BoxShadow.m +++ b/ios/sdk/WeexSDK/Sources/Display/WXComponent+BoxShadow.m @@ -22,6 +22,8 @@ #import "WXConvert.h" #import "WXUtility.h" #import "WXComponent_internal.h" +#import "UIBezierPath+Weex.h" +#import "WXRoundedRect.h" @implementation WXComponent (BoxShadow) @@ -81,15 +83,20 @@ if (!boxShadow) { return; } + WXRoundedRect *borderRect = [[WXRoundedRect alloc] initWithRect:self.view.bounds topLeft:_borderTopLeftRadius topRight:_borderTopRightRadius bottomLeft:_borderBottomLeftRadius bottomRight:_borderBottomRightRadius]; + // here is computed radii, do not use original style + WXRadii *radii = borderRect.radii; + CGFloat topLeft = radii.topLeft, topRight = radii.topRight, bottomLeft = radii.bottomLeft, bottomRight = radii.bottomRight; + UIBezierPath *shadowPath = [UIBezierPath wx_bezierPathWithRoundedRect:self.view.bounds topLeft:topLeft topRight:topRight bottomLeft:bottomLeft bottomRight:bottomRight]; if (boxShadow.isInset) { if (boxShadow.innerLayer) { boxShadow.innerLayer.frame = self.view.bounds; if (![boxShadow.innerLayer superlayer] ){ + self.view.layer.masksToBounds = YES; [self.view.layer addSublayer:boxShadow.innerLayer]; } } } else { - UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:self.view.bounds]; self.view.layer.masksToBounds = NO; self.view.layer.shadowColor = boxShadow.shadowColor.CGColor; self.view.layer.shadowOffset = boxShadow.shadowOffset;