From 0691c3b9d65d6cd9b4b082030337c81dc02a1cf6 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sat, 14 Mar 2020 23:32:54 -0400 Subject: [PATCH] Fix asset preview size --- .../Asset Picker/AssetCollectionViewController.swift | 12 +++++++++++- .../Asset Picker/AssetPreviewViewController.swift | 3 +++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Tusker/Screens/Compose/Asset Picker/AssetCollectionViewController.swift b/Tusker/Screens/Compose/Asset Picker/AssetCollectionViewController.swift index 2cd509ca..a53eb62d 100644 --- a/Tusker/Screens/Compose/Asset Picker/AssetCollectionViewController.swift +++ b/Tusker/Screens/Compose/Asset Picker/AssetCollectionViewController.swift @@ -170,12 +170,22 @@ class AssetCollectionViewController: UICollectionViewController { return nil } else { let asset = fetchResult.object(at: indexPath.row - 1) - return UIContextMenuConfiguration(identifier: nil, previewProvider: { () -> UIViewController? in + return UIContextMenuConfiguration(identifier: indexPath as NSIndexPath, previewProvider: { () -> UIViewController? in return AssetPreviewViewController(asset: asset) }, actionProvider: nil) } } + override func collectionView(_ collectionView: UICollectionView, previewForHighlightingContextMenuWithConfiguration configuration: UIContextMenuConfiguration) -> UITargetedPreview? { + if let indexPath = (configuration.identifier as? NSIndexPath) as IndexPath?, let cell = collectionView.cellForItem(at: indexPath) { + let parameters = UIPreviewParameters() + parameters.backgroundColor = .black + return UITargetedPreview(view: cell, parameters: parameters) + } else { + return nil + } + } + // MARK: - Interaction @objc func donePressed() { diff --git a/Tusker/Screens/Compose/Asset Picker/AssetPreviewViewController.swift b/Tusker/Screens/Compose/Asset Picker/AssetPreviewViewController.swift index ece1efd5..a2272226 100644 --- a/Tusker/Screens/Compose/Asset Picker/AssetPreviewViewController.swift +++ b/Tusker/Screens/Compose/Asset Picker/AssetPreviewViewController.swift @@ -63,6 +63,7 @@ class AssetPreviewViewController: UIViewController { PHImageManager.default().requestImage(for: asset, targetSize: view.bounds.size, contentMode: .aspectFit, options: options) { (image, _) in DispatchQueue.main.async { imageView.image = image + self.preferredContentSize = image!.size } } } @@ -90,6 +91,7 @@ class AssetPreviewViewController: UIViewController { livePhotoView.topAnchor.constraint(equalTo: self.view.topAnchor), livePhotoView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor) ]) + self.preferredContentSize = livePhoto.size } } } @@ -111,6 +113,7 @@ class AssetPreviewViewController: UIViewController { player.play() playerController.player = player self.embedChild(playerController) + self.preferredContentSize = item.presentationSize } } }