Poll Content View
Overview
The LMChatPollContentView is a subclass of LMChatMessageContentView specifically designed to display poll content within a chat message. It integrates the LMChatPollView to render poll information and manages the visibility of various UI elements based on the message state.
File Location:
LMChatPollContentView.swift
UI Components
pollDisplayView: An instance of LMChatPollView that displays the poll content.cancelRetryContainerStackView: A LMStackView containing cancel and retry buttons (inherited from superclass).loaderView: ALMAttachmentLoaderViewto display loading state (inherited from superclass).retryView: ALMChatAttachmentUploadRetryViewto display retry option for failed messages (inherited from superclass).
Methods
setDataView(_:index:): Updates the view with the provided message data and manages visibility of UI elements.pollDisplayPreview(_:): Configures and displays the poll content if available.updateRetryButton(_:): Updates the visibility of loader and retry views based on message status.prepareToResuse(): Prepares the view for reuse in a table or collection view.
Customization
CustomChatPollContentView.swift
class CustomChatPollContentView: LMChatPollContentView {
override func setupViews() {
super.setupViews()
// Add custom views here
}
override func setupLayouts() {
super.setupLayouts()
// Modify layout constraints here
}
override func setDataView(_ data: LMChatMessageCell.ContentModel, index: IndexPath) {
super.setDataView(data, index: index)
// Customize data presentation here
}
}
AppDelegate.swift
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
LMUIComponents.shared.pollContentView = CustomChatPollContentView.self
// ...
return true
}