wip: carousel media preview view

pull/782/head
ryanzhao 1 year ago
parent d4957de746
commit fbc2eb35ec

@ -54,7 +54,7 @@ extension MediaInfoVC {
// MARK: - Lifecycle
init(attachment: Attachment?) {
init(attachment: Attachment? = nil) {
self.attachment = attachment
super.init(frame: CGRect.zero)

@ -59,8 +59,8 @@ extension MediaInfoVC {
}
private func setUpViewHierarchy() {
set(.width, to: 293)
set(.height, to: 293)
set(.width, to: MediaInfoVC.mediaSize)
set(.height, to: MediaInfoVC.mediaSize)
addSubview(mediaView)
mediaView.pin(to: self)

@ -5,10 +5,14 @@ import SessionUIKit
import SessionUtilitiesKit
final class MediaInfoVC: BaseVC {
internal static let mediaSize: CGFloat = 293
private let attachments: [Attachment]
private let isOutgoing: Bool
// MARK: - UI
private lazy var mediaInfoView: MediaInfoView = MediaInfoView()
// MARK: - Initialization
init(attachments: [Attachment], isOutgoing: Bool) {
@ -36,18 +40,30 @@ final class MediaInfoVC: BaseVC {
hasCustomBackButton: false
)
let mediaStackView: UIStackView = UIStackView()
mediaStackView.axis = .horizontal
attachments.forEach {
let mediaPreviewView: MediaPreviewView = MediaPreviewView(
attachment: $0,
isOutgoing: isOutgoing)
let mediaInfoView: MediaInfoView = MediaInfoView(attachment: $0)
let stackView: UIStackView = UIStackView(arrangedSubviews: [ mediaPreviewView, mediaInfoView ])
stackView.axis = .vertical
stackView.spacing = Values.largeSpacing
self.view.addSubview(stackView)
stackView.center(in: self.view)
mediaStackView.addArrangedSubview(mediaPreviewView)
}
let scrollView: UIScrollView = UIScrollView()
scrollView.isPagingEnabled = true
scrollView.set(.width, to: Self.mediaSize)
scrollView.set(.height, to: Self.mediaSize)
scrollView.contentSize = CGSize(width: Self.mediaSize * CGFloat(attachments.count), height: Self.mediaSize)
scrollView.addSubview(mediaStackView)
mediaInfoView.update(attachment: attachments[0])
let stackView: UIStackView = UIStackView(arrangedSubviews: [ scrollView, mediaInfoView ])
stackView.axis = .vertical
stackView.spacing = Values.largeSpacing
self.view.addSubview(stackView)
stackView.center(in: self.view)
}
}

Loading…
Cancel
Save