From 87490795d515bcdbf1d0c7f676ca720eca8df3a7 Mon Sep 17 00:00:00 2001 From: mengyanluo Date: Mon, 20 Jun 2022 14:41:37 +0800 Subject: [PATCH] fix(ios): fix border bottom color display error because background image covers bottom border color --- .../ios/renderer/component/view/HippyView.h | 1 - .../ios/renderer/component/view/HippyView.mm | 25 +++++++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/renderer/native/ios/renderer/component/view/HippyView.h b/renderer/native/ios/renderer/component/view/HippyView.h index 25109c0ee..6df874752 100644 --- a/renderer/native/ios/renderer/component/view/HippyView.h +++ b/renderer/native/ios/renderer/component/view/HippyView.h @@ -113,7 +113,6 @@ /** * BackgroundImage styles. */ -//@property (nonatomic, strong) NSString *backgroundImageUrl; @property(nonatomic, strong) UIImage *backgroundImage; @property (nonatomic, strong) NSString *backgroundSize; @property (nonatomic, assign) CGFloat backgroundPositionX; diff --git a/renderer/native/ios/renderer/component/view/HippyView.mm b/renderer/native/ios/renderer/component/view/HippyView.mm index 36d0082de..6beab519d 100644 --- a/renderer/native/ios/renderer/component/view/HippyView.mm +++ b/renderer/native/ios/renderer/component/view/HippyView.mm @@ -627,27 +627,26 @@ void HippyBoarderColorsRelease(HippyBorderColors c) { return YES; } else if (self.backgroundImage) { - CGFloat backgroundPositionX = self.backgroundPositionX; - CGFloat backgroundPositionY = self.backgroundPositionY; UIImage *decodedImage = self.backgroundImage; if (!decodedImage) { contentBlock(nil); } - + CGFloat backgroundPositionX = self.backgroundPositionX; + CGFloat backgroundPositionY = self.backgroundPositionY; UIGraphicsBeginImageContextWithOptions(theFrame.size, NO, image.scale); - //160,80 - CGSize size = theFrame.size; - - [image drawInRect:(CGRect) { CGPointZero, size }]; - //180,121.33333333 + //draw background image CGSize imageSize = decodedImage.size; - //160,80 CGSize targetSize = UIEdgeInsetsInsetRect(theFrame, [self bordersAsInsets]).size; - //180,121.33333333 CGSize drawSize = makeSizeConstrainWithType(imageSize, targetSize, backgroundSize); - - [decodedImage drawInRect:CGRectMake(borderInsets.left + backgroundPositionX, borderInsets.top + backgroundPositionY, drawSize.width, - drawSize.height)]; + [decodedImage drawInRect:CGRectMake(borderInsets.left + backgroundPositionX, + borderInsets.top + backgroundPositionY, + drawSize.width, + drawSize.height)]; + //draw border + CGSize size = theFrame.size; + [image drawInRect:(CGRect) { CGPointZero, size }]; + + //output image UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); contentBlock(resultingImage);