From 3fd4ed42c4d7742dfc1c832af3c132bb0d2201bd Mon Sep 17 00:00:00 2001 From: nixzhu Date: Tue, 10 Nov 2015 14:55:42 +0800 Subject: [PATCH] dismiss --- .../ConversationViewController.swift | 5 ++ .../MediaPreviewViewController.swift | 60 +++++++++++++++---- 2 files changed, 53 insertions(+), 12 deletions(-) diff --git a/Yep/ViewControllers/Conversation/ConversationViewController.swift b/Yep/ViewControllers/Conversation/ConversationViewController.swift index 47ec8d12..927f32e8 100644 --- a/Yep/ViewControllers/Conversation/ConversationViewController.swift +++ b/Yep/ViewControllers/Conversation/ConversationViewController.swift @@ -2817,7 +2817,12 @@ extension ConversationViewController: UICollectionViewDataSource, UICollectionVi vc.previewImageViewInitalFrame = frame vc.previewImage = image + vc.afterDismissAction = { [weak self] in + self?.view.window?.makeKeyAndVisible() + } + mediaPreviewWindow.rootViewController = vc + mediaPreviewWindow.windowLevel = UIWindowLevelAlert - 1 mediaPreviewWindow.makeKeyAndVisible() } } diff --git a/Yep/ViewControllers/MediaPreview/MediaPreviewViewController.swift b/Yep/ViewControllers/MediaPreview/MediaPreviewViewController.swift index b5433e72..62d311d9 100644 --- a/Yep/ViewControllers/MediaPreview/MediaPreviewViewController.swift +++ b/Yep/ViewControllers/MediaPreview/MediaPreviewViewController.swift @@ -27,8 +27,14 @@ class MediaPreviewViewController: UIViewController { var previewImageViewInitalFrame: CGRect? var previewImage: UIImage? + var afterDismissAction: (() -> Void)? + let mediaViewCellID = "MediaViewCell" + deinit { + println("deinit MediaPreview") + } + override func viewDidLoad() { super.viewDidLoad() @@ -53,18 +59,20 @@ class MediaPreviewViewController: UIViewController { let previewImageWidth = previewImage.size.width let previewImageHeight = previewImage.size.height - let previewImageViewWidth: CGFloat - let previewImageViewHeight: CGFloat - - if previewImageWidth > previewImageHeight { - previewImageViewWidth = viewWidth - previewImageViewHeight = (previewImageHeight / previewImageWidth) * previewImageViewWidth - - } else { - // TODO: size - previewImageViewWidth = viewWidth - previewImageViewHeight = (previewImageHeight / previewImageWidth) * previewImageViewWidth - } + let previewImageViewWidth = viewWidth + let previewImageViewHeight = (previewImageHeight / previewImageWidth) * previewImageViewWidth +// let previewImageViewWidth: CGFloat +// let previewImageViewHeight: CGFloat +// +// if previewImageWidth > previewImageHeight { +// previewImageViewWidth = viewWidth +// previewImageViewHeight = (previewImageHeight / previewImageWidth) * previewImageViewWidth +// +// } else { +// // TODO: size +// previewImageViewWidth = viewWidth +// previewImageViewHeight = (previewImageHeight / previewImageWidth) * previewImageViewWidth +// } //let finalWidth = UIScreen.mainScreen().bounds.width //let finalHeight = UIScreen.mainScreen().bounds.height @@ -77,6 +85,34 @@ class MediaPreviewViewController: UIViewController { }, completion: { [weak self] _ in self?.mediasCollectionView.alpha = 1 + self?.previewImageView.alpha = 0 + }) + + + + let tap = UITapGestureRecognizer(target: self, action: "dismiss") + view.addGestureRecognizer(tap) + } + + // MARK: Actions + + func dismiss() { + + previewImageView.alpha = 1 + mediasCollectionView.alpha = 0 + + UIView.animateWithDuration(1.25, delay: 0.0, options: .CurveEaseInOut, animations: { [weak self] in + + self?.previewImageView.frame = self?.previewImageViewInitalFrame ?? CGRectZero + + }, completion: { [weak self] _ in + mediaPreviewWindow.windowLevel = UIWindowLevelNormal + + self?.afterDismissAction?() + + delay(0.2) { + mediaPreviewWindow.rootViewController = nil + } }) } }