diff --git a/Example/Sources/ConversationViewController.swift b/Example/Sources/ConversationViewController.swift index 73233e37..d4ce9773 100644 --- a/Example/Sources/ConversationViewController.swift +++ b/Example/Sources/ConversationViewController.swift @@ -222,6 +222,8 @@ extension ConversationViewController: MessagesDisplayDelegate { func messageStyle(for message: MessageType, at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView) -> MessageStyle { let corner: MessageStyle.TailCorner = isFromCurrentSender(message: message) ? .bottomRight : .bottomLeft return .bubbleTail(corner, .curved) +// let configurationClosure = { (view: MessageContainerView) in} +// return .custom(configurationClosure) } func messageFooterView(for message: MessageType, at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView) -> MessageFooterView? { diff --git a/Sources/MessageContainerView.swift b/Sources/MessageContainerView.swift index a4b6a3d9..1310a217 100644 --- a/Sources/MessageContainerView.swift +++ b/Sources/MessageContainerView.swift @@ -69,6 +69,11 @@ open class MessageContainerView: UIImageView { mask = nil image = nil tintColor = nil + case .custom(let configurationClosure): + mask = nil + image = nil + tintColor = nil + configurationClosure(self) } } diff --git a/Sources/MessageStyle.swift b/Sources/MessageStyle.swift index 67899fb0..d42e7487 100644 --- a/Sources/MessageStyle.swift +++ b/Sources/MessageStyle.swift @@ -69,6 +69,7 @@ public enum MessageStyle { case bubbleOutline(UIColor) case bubbleTail(TailCorner, TailStyle) case bubbleTailOutline(UIColor, TailCorner, TailStyle) + case custom((MessageContainerView) -> Void) // MARK: - Public @@ -79,7 +80,7 @@ public enum MessageStyle { guard var image = UIImage(contentsOfFile: path) else { return nil } switch self { - case .none: + case .none, .custom: return nil case .bubble, .bubbleOutline: break @@ -103,7 +104,7 @@ public enum MessageStyle { return "bubble_full" + tailStyle.imageNameSuffix case .bubbleTailOutline(_, _, let tailStyle): return "bubble_outlined" + tailStyle.imageNameSuffix - case .none: + case .none, .custom: return nil } }