From e0fbf88912100d665a5f6055b0e1e05e445aede2 Mon Sep 17 00:00:00 2001 From: 3stud1ant3 Date: Fri, 24 Nov 2017 23:42:01 +0500 Subject: [PATCH] feat: change corner radius for multilines from storyboard --- Example/Base.lproj/Main.storyboard | 6 ++ Sources/Extensions/CALayer+Extensions.swift | 4 +- Sources/Helpers/ContainsMultilineText.swift | 82 +++++++++++++-------- Sources/SkeletonDefaultConfig.swift | 22 +++--- Sources/SkeletonLayer.swift | 8 +- 5 files changed, 79 insertions(+), 43 deletions(-) diff --git a/Example/Base.lproj/Main.storyboard b/Example/Base.lproj/Main.storyboard index 02df0d0..6b1516c 100644 --- a/Example/Base.lproj/Main.storyboard +++ b/Example/Base.lproj/Main.storyboard @@ -52,6 +52,9 @@ + + + @@ -99,6 +102,9 @@ + + + diff --git a/Sources/Extensions/CALayer+Extensions.swift b/Sources/Extensions/CALayer+Extensions.swift index 886ccc0..e300c81 100644 --- a/Sources/Extensions/CALayer+Extensions.swift +++ b/Sources/Extensions/CALayer+Extensions.swift @@ -36,7 +36,7 @@ extension CALayer { return sublayers?.filter { $0.name == CALayer.skeletonSubLayersName } ?? [CALayer]() } - func addMultilinesLayers(lines: Int, type: SkeletonType, lastLineFillPercent: Int) { + func addMultilinesLayers(lines: Int, type: SkeletonType, lastLineFillPercent: Int, multilineCornerRadius: Int) { let numberOfSublayers = calculateNumLines(maxLines: lines) for index in 0.. CALayer { + func makeMultilineLayer(withType type: SkeletonType, for index: Int, width: CGFloat, multilineCornerRadius: Int) -> CALayer { let spaceRequiredForEachLine = SkeletonDefaultConfig.multilineHeight + SkeletonDefaultConfig.multilineSpacing let layer = type.layer layer.anchorPoint = .zero layer.name = CALayer.skeletonSubLayersName layer.frame = CGRect(x: 0.0, y: CGFloat(index) * spaceRequiredForEachLine, width: width, height: SkeletonDefaultConfig.multilineHeight) + + layer.cornerRadius = CGFloat(multilineCornerRadius) + layer.masksToBounds = true + return layer } } @@ -77,7 +81,7 @@ struct SkeletonLayer { func addMultilinesIfNeeded() { guard let multiLineView = holder as? ContainsMultilineText else { return } - maskLayer.addMultilinesLayers(lines: multiLineView.numLines, type: type, lastLineFillPercent: multiLineView.lastLineFillingPercent) + maskLayer.addMultilinesLayers(lines: multiLineView.numLines, type: type, lastLineFillPercent: multiLineView.lastLineFillingPercent, multilineCornerRadius: multiLineView.multilineCornerRadius) } }