Skip to content
Snippets Groups Projects
Select Git revision
  • 48ac28536ccf264466362a9087b8a4bc468d56e7
  • main default protected
  • dev protected
  • hotfixes-oct-2022
  • refactor/avatar-cell
  • 1.1.5
  • 1.1.4
  • 1.1.3
  • 1.1
  • 1.0.8
  • 1.0.7
  • 1.0.6
12 results

DocumentMessageView.swift

Blame
  • DocumentMessageView.swift 2.11 KiB
    import UIKit
    import Shared
    
    typealias OutgoingDocumentCell = CollectionCell<FlexibleSpace, DocumentMessageView>
    typealias IncomingDocumentCell = CollectionCell<DocumentMessageView, FlexibleSpace>
    
    final class DocumentMessageView: UIView, CollectionCellContent {
        // MARK: UI
    
        let titleLabel = UILabel()
        let imageView = UIImageView()
    
        // MARK: Lifecycle
    
        override init(frame: CGRect) {
            super.init(frame: frame)
            setup()
        }
    
        required init?(coder: NSCoder) { nil }
    
        func prepareForReuse() {
            imageView.image = nil
            titleLabel.text = nil
        }
    
        // MARK: Private
    
        private func setup() {
            layer.borderWidth = 2
            layer.borderColor = Asset.accentWarning.color.cgColor
            imageView.clipsToBounds = true
            imageView.contentMode = .scaleAspectFill
    
            titleLabel.textColor = Asset.neutralDark.color
            titleLabel.font = Fonts.Mulish.semiBold.font(size: 15.0)
    
            addSubview(imageView)
            imageView.addSubview(titleLabel)
    
            insetsLayoutMarginsFromSafeArea = false
            translatesAutoresizingMaskIntoConstraints = false
            imageView.translatesAutoresizingMaskIntoConstraints = false
            imageView.widthAnchor.constraint(equalToConstant: 200).isActive = true
            imageView.heightAnchor.constraint(equalToConstant: 150).isActive = true
            imageView.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor).isActive = true
            imageView.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor).isActive = true
            imageView.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor).isActive = true
            imageView.trailingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor).isActive = true
    
            titleLabel.translatesAutoresizingMaskIntoConstraints = false
            titleLabel.bottomAnchor.constraint(equalTo: imageView.bottomAnchor, constant: -15).isActive = true
            titleLabel.leadingAnchor.constraint(equalTo: imageView.leadingAnchor, constant: 15).isActive = true
            titleLabel.trailingAnchor.constraint(equalTo: imageView.trailingAnchor, constant: -15).isActive = true
        }
    }