diff --git a/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.h b/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.h index cc1df5e6..5cb733bb 100644 --- a/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.h +++ b/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.h @@ -79,6 +79,10 @@ // Creates, pins, and returns a safe area view for the passed in view. + (nullable UIView *)getAndSetupSafeAreaViewOnView:(nonnull UIView *)view; +#pragma mark border + ++ (nullable UIImage *)addBorderToImage:(nullable UIImage *)image; + #pragma mark - shadows + (void)drawBottomCurvedShadowsOnRect:(CGRect)rect toView:(nullable UIView *)view; diff --git a/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.m b/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.m index 5c796417..e2dd9552 100644 --- a/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.m +++ b/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.m @@ -253,6 +253,35 @@ static const CGFloat VertialShadowOffset = 6; return safeAreaView; } +#pragma mark border + ++ (nullable UIImage *)addBorderToImage:(nullable UIImage *)image { + if (!image) { + return nil; + } + CGSize size = [image size]; + UIGraphicsBeginImageContext(size); + + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextSetRGBStrokeColor(context, 0.0, 0.0, 0.0, 1.0); + CGContextSetLineWidth(context, 1.0); + CGContextMoveToPoint(context, 0, 0); + CGContextAddLineToPoint(context, size.width, 0); + CGContextAddLineToPoint(context, size.width, size.height); + CGContextAddLineToPoint(context, 0, size.height); + CGContextAddLineToPoint(context, 0, 0); + CGContextStrokePath(context); + + //Comensating for the border so that none of the image is missed + CGRect newImageRect = CGRectMake(1, 1, size.width - 2, size.height - 2); + [image drawInRect: newImageRect]; + + UIImage *imageWithBorder = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return imageWithBorder; + +} + #pragma mark - shadows + (void)drawBottomCurvedShadowsOnRect:(CGRect)rect toView:(nullable UIView *)view {