Edit Short Video Screen
Overview
The Edit Short Video Screen (LMFeedEditShortVideoScreen
) provides an interface for users to edit their existing short video content.
File Location:
LMFeedEditShortVideoScreen.swift
Functionality
Protocols Implemented
LMFeedEditShortVideoViewModelProtocol
Defines methods that are triggered from the view model and are implemented by the view controller using it
setupData(with userData: LMFeedCreatePostHeaderView.ContentModel, text: String)
: Called to initialize the screen with user data and post text.setupMediaPreview(with mediaCells: [LMFeedVideoCollectionCell.ContentModel])
: Called to set up the video preview with the provided media cells.
LMFeedTaggingTextViewProtocol
Manages user mention functionality in the text view.
LMFeedTaggedUserFoundProtocol
Handles user selection from the tagging list.
UI Components
containerView
: The main container view with a white background.containerStackView
: A vertical stack view organizing the main content.scrollView
: A scrollable view for content that may exceed screen height.scrollStackView
: A vertical stack view within the scroll view for content organization.inputTextView
: A text view for entering post content with user mention support.mediaCollectionView
: A collection view for displaying video content.taggingView
: A view for displaying and selecting mentioned users.saveButton
: A navigation bar button for saving changes.
Data Variables
mediaCells
: An array ofLMFeedVideoCollectionCell.ContentModel
objects containing video data.inputTextViewHeightConstraint
: A constraint for the input text view's height.textInputMaximumHeight
: The maximum height allowed for the input text view.taggingViewHeight
: A constraint for the tagging view's height.
Methods
setupViews()
: Configures the initial view hierarchy.setupLayouts()
: Sets up the layout constraints for all UI components.setupActions()
: Configures action handlers for UI elements.setupAppearance()
: Customizes the visual appearance of the screen.setupInitialView()
: Initializes the view state.showDiscardAlert()
: Shows an alert when attempting to discard changes.
Action Handlers
didTapSaveButton()
: Called when the save button is tapped.didTapBackButton()
: Called when the back button is tapped.
Customization
CustomEditShortVideoScreen.swift
class CustomEditShortVideoScreen: LMFeedEditShortVideoScreen {
override func setupAppearance() {
super.setupAppearance()
containerView.backgroundColor = .systemBackground
inputTextView.backgroundColor = .secondarySystemBackground
mediaCollectionView.layer.cornerRadius = 16
}
}
AppDelegate.swift
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
Components.shared.editShortVideoScreen = CustomEditShortVideoScreen.self
// ...
return true
}