From d9acd33f2279d7adede422c3b75258523c423c51 Mon Sep 17 00:00:00 2001 From: Takuma Matsushita Date: Mon, 7 Mar 2022 19:08:20 +0900 Subject: [PATCH] Specify .circular only when it is a circle --- .../GlossButtonContinousCornerRoundedNode.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/GlossButtonNode/GlossButtonContinousCornerRoundedNode.swift b/GlossButtonNode/GlossButtonContinousCornerRoundedNode.swift index 72a56f9..c9961c4 100644 --- a/GlossButtonNode/GlossButtonContinousCornerRoundedNode.swift +++ b/GlossButtonNode/GlossButtonContinousCornerRoundedNode.swift @@ -29,6 +29,8 @@ final class GlossButtonContinousCornerRoundedNode: ASDisplayNode { private let passBasedMaskNode: ShapeRenderingNode private let layerBasedMaskNode: ASDisplayNode + + private var __radius: CGFloat? override init() { @@ -65,6 +67,7 @@ final class GlossButtonContinousCornerRoundedNode: ASDisplayNode { self.passBasedMaskNode.alpha = 0 self.layerBasedMaskNode.backgroundColor = .black self.layerBasedMaskNode.layer.cornerRadius = radius + self.__radius = radius self._updateCornerCurve() } } @@ -72,7 +75,9 @@ final class GlossButtonContinousCornerRoundedNode: ASDisplayNode { private func _updateCornerCurve() { if #available(*, iOS 13) { - if bounds.width == bounds.height { + if bounds.width == bounds.height, + let __radius = __radius, + __radius == bounds.width / 2 { layerBasedMaskNode.layer.cornerCurve = .circular } else { layerBasedMaskNode.layer.cornerCurve = .continuous