wip: carousel media preview view

pull/782/head
ryanzhao 2 years ago
parent d4957de746
commit fbc2eb35ec

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

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

@ -5,10 +5,14 @@ import SessionUIKit
import SessionUtilitiesKit import SessionUtilitiesKit
final class MediaInfoVC: BaseVC { final class MediaInfoVC: BaseVC {
internal static let mediaSize: CGFloat = 293
private let attachments: [Attachment] private let attachments: [Attachment]
private let isOutgoing: Bool private let isOutgoing: Bool
// MARK: - UI
private lazy var mediaInfoView: MediaInfoView = MediaInfoView()
// MARK: - Initialization // MARK: - Initialization
init(attachments: [Attachment], isOutgoing: Bool) { init(attachments: [Attachment], isOutgoing: Bool) {
@ -36,18 +40,30 @@ final class MediaInfoVC: BaseVC {
hasCustomBackButton: false hasCustomBackButton: false
) )
let mediaStackView: UIStackView = UIStackView()
mediaStackView.axis = .horizontal
attachments.forEach { attachments.forEach {
let mediaPreviewView: MediaPreviewView = MediaPreviewView( let mediaPreviewView: MediaPreviewView = MediaPreviewView(
attachment: $0, attachment: $0,
isOutgoing: isOutgoing) isOutgoing: isOutgoing)
let mediaInfoView: MediaInfoView = MediaInfoView(attachment: $0) mediaStackView.addArrangedSubview(mediaPreviewView)
let stackView: UIStackView = UIStackView(arrangedSubviews: [ mediaPreviewView, mediaInfoView ])
stackView.axis = .vertical
stackView.spacing = Values.largeSpacing
self.view.addSubview(stackView)
stackView.center(in: self.view)
} }
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