diff --git a/Sources/Views/MessageContainerView.swift b/Sources/Views/MessageContainerView.swift index 1310a217..500f2a3b 100644 --- a/Sources/Views/MessageContainerView.swift +++ b/Sources/Views/MessageContainerView.swift @@ -30,38 +30,49 @@ open class MessageContainerView: UIImageView { private let imageMask = UIImageView() - open override var frame: CGRect { - didSet { - applyMessageStyle() - } - } - open var style: MessageStyle = .none { didSet { applyMessageStyle() } } + open override var frame: CGRect { + didSet { + sizeMaskToView() + } + } + // MARK: - Methods + private func sizeMaskToView() { + switch style { + case .none, .custom: + break + case .bubble, .bubbleTail: + imageMask.frame = bounds + case .bubbleOutline, .bubbleTailOutline: + imageMask.frame = bounds.insetBy(dx: 1.0, dy: 1.0) + } + } + private func applyMessageStyle() { switch style { case .bubble, .bubbleTail: imageMask.image = style.image - imageMask.frame = bounds + sizeMaskToView() mask = imageMask image = nil case .bubbleOutline(let color): let bubbleStyle: MessageStyle = .bubble imageMask.image = bubbleStyle.image - imageMask.frame = bounds.insetBy(dx: 1.0, dy: 1.0) + sizeMaskToView() mask = imageMask image = style.image tintColor = color case .bubbleTailOutline(let color, let tail, let corner): let bubbleStyle: MessageStyle = .bubbleTailOutline(.white, tail, corner) imageMask.image = bubbleStyle.image - imageMask.frame = bounds.insetBy(dx: 1.0, dy: 1.0) + sizeMaskToView() mask = imageMask image = style.image tintColor = color @@ -76,5 +87,4 @@ open class MessageContainerView: UIImageView { configurationClosure(self) } } - }