Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion PeekPop/PeekPopManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class PeekPopManager {

// Take target view controller screenshot
targetVC.view.frame = viewController.view.bounds
peekPopView?.targetViewControllerScreenshot = targetVC.view.screenshotView(false)
peekPopView?.targetViewControllerView = targetVC.view
targetViewController = targetVC

return true
Expand Down Expand Up @@ -115,6 +115,7 @@ class PeekPopManager {
guard let targetViewController = targetViewController, context = context else {
return
}
peekPopView?.targetViewControllerScreenshot = targetViewController.view.screenshotView(false)
context.delegate.previewingContext(context, commitViewController: targetViewController)
peekPopEnded()
}
Expand Down
22 changes: 21 additions & 1 deletion PeekPop/PeekPopView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,14 @@ class PeekPopView: UIView {
blurredScreenshots.removeAll()
}
}
var targetViewControllerScreenshot: UIImage? = nil

var targetViewControllerView: UIView? = nil
var targetViewControllerScreenshot: UIImage? = nil{
didSet{
targetPreviewView.imageView.image = targetViewControllerScreenshot
}
}

var sourceViewScreenshot: UIImage?
var blurredScreenshots = [UIImage]()

Expand Down Expand Up @@ -85,6 +92,7 @@ class PeekPopView: UIView {
targetPreviewView.frame.size = sourceViewRect.size
targetPreviewView.imageViewFrame = self.bounds
targetPreviewView.imageView.image = targetViewControllerScreenshot
targetPreviewView.viewControllerView = targetViewControllerView

sourceImageView.frame = sourceViewRect
sourceImageView.image = sourceViewScreenshot
Expand Down Expand Up @@ -151,6 +159,16 @@ class PeekPopTargetPreviewView: UIView {
var imageContainer = UIImageView()
var imageView = UIImageView()
var imageViewFrame = CGRect.zero

var viewControllerView: UIView? = nil{
willSet{
viewControllerView?.removeFromSuperview()
}
didSet{
imageContainer.insertSubview(viewControllerView!, belowSubview: imageView)
setNeedsLayout()
}
}

override init(frame: CGRect) {
super.init(frame: frame)
Expand All @@ -167,6 +185,8 @@ class PeekPopTargetPreviewView: UIView {
imageContainer.frame = self.bounds
imageView.frame = imageViewFrame
imageView.center = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2)
viewControllerView?.frame = imageViewFrame
viewControllerView?.center = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2)
}

func setup() {
Expand Down
12 changes: 9 additions & 3 deletions examples/InstaPreview/Sample/Base.lproj/Main.storyboard
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="bcI-18-A9e">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10116" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="bcI-18-A9e">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<scenes>
<!--Images Collection View Controller-->
Expand Down Expand Up @@ -56,17 +56,23 @@
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="hNB-TH-Mnu">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
</imageView>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" style="whiteLarge" translatesAutoresizingMaskIntoConstraints="NO" id="DW0-xW-Q4G">
<rect key="frame" x="282" y="281" width="37" height="37"/>
</activityIndicatorView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="hNB-TH-Mnu" firstAttribute="leading" secondItem="CxV-m9-HfW" secondAttribute="leading" id="0ha-nx-HHq"/>
<constraint firstItem="hNB-TH-Mnu" firstAttribute="top" secondItem="CxV-m9-HfW" secondAttribute="top" id="LIe-BR-05g"/>
<constraint firstItem="dvO-Mg-cii" firstAttribute="top" secondItem="hNB-TH-Mnu" secondAttribute="bottom" id="LXo-7C-1fz"/>
<constraint firstItem="DW0-xW-Q4G" firstAttribute="centerY" secondItem="CxV-m9-HfW" secondAttribute="centerY" id="Xcd-6N-FCt"/>
<constraint firstItem="DW0-xW-Q4G" firstAttribute="centerX" secondItem="CxV-m9-HfW" secondAttribute="centerX" id="rgt-i8-5hb"/>
<constraint firstAttribute="trailing" secondItem="hNB-TH-Mnu" secondAttribute="trailing" id="u43-bD-VVR"/>
</constraints>
</view>
<connections>
<outlet property="imageView" destination="hNB-TH-Mnu" id="fLC-V4-vlT"/>
<outlet property="activityIndicator" destination="DW0-xW-Q4G" id="eFv-Uk-eP9"/>
<outlet property="imageView" destination="hNB-TH-Mnu" id="iL6-lZ-cW4"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="jSn-nB-KU8" userLabel="First Responder" sceneMemberID="firstResponder"/>
Expand Down
12 changes: 4 additions & 8 deletions examples/InstaPreview/Sample/PreviewViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,22 @@ import UIKit

class PreviewViewController: UIViewController {

var imageView = UIImageView()
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var activityIndicator: UIActivityIndicatorView!

var image: UIImage? {
didSet {
if let image = image {
imageView.image = image
imageView?.image = image
}
}
}

override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
imageView.frame = self.view.bounds
}

override func viewDidLoad() {
super.viewDidLoad()
self.title = "Amsterdam"
imageView.image = image
self.view.addSubview(imageView)
activityIndicator.startAnimating()
}

}