forked from shadowfacts/Tusker
Large Image VC: Show share sheet instead of downloading
This commit is contained in:
parent
bd8e16cacb
commit
0abc28900c
|
@ -25,9 +25,9 @@ class LargeImageViewController: UIViewController, UIScrollViewDelegate {
|
||||||
|
|
||||||
@IBOutlet weak var topControlsView: UIView!
|
@IBOutlet weak var topControlsView: UIView!
|
||||||
@IBOutlet weak var topControlsHeightConstraint: NSLayoutConstraint!
|
@IBOutlet weak var topControlsHeightConstraint: NSLayoutConstraint!
|
||||||
@IBOutlet weak var downloadButton: UIButton!
|
@IBOutlet weak var shareButton: UIButton!
|
||||||
@IBOutlet weak var downloadButtonTopConstraint: NSLayoutConstraint!
|
@IBOutlet weak var shareButtonTopConstraint: NSLayoutConstraint!
|
||||||
@IBOutlet weak var downloadButtonLeadingConstraint: NSLayoutConstraint!
|
@IBOutlet weak var shareButtonLeadingConstraint: NSLayoutConstraint!
|
||||||
@IBOutlet weak var closeButton: UIButton!
|
@IBOutlet weak var closeButton: UIButton!
|
||||||
@IBOutlet weak var closeButtonTopConstraint: NSLayoutConstraint!
|
@IBOutlet weak var closeButtonTopConstraint: NSLayoutConstraint!
|
||||||
@IBOutlet weak var closeButtonTrailingConstraint: NSLayoutConstraint!
|
@IBOutlet weak var closeButtonTrailingConstraint: NSLayoutConstraint!
|
||||||
|
@ -136,8 +136,8 @@ class LargeImageViewController: UIViewController, UIScrollViewDelegate {
|
||||||
// running on iPhone X style notched device
|
// running on iPhone X style notched device
|
||||||
let notchWidth: CGFloat = 209
|
let notchWidth: CGFloat = 209
|
||||||
let earWidth = (view.bounds.width - notchWidth) / 2
|
let earWidth = (view.bounds.width - notchWidth) / 2
|
||||||
let offset = (earWidth - downloadButton.bounds.width) / 2
|
let offset = (earWidth - shareButton.bounds.width) / 2
|
||||||
downloadButtonLeadingConstraint.constant = offset
|
shareButtonLeadingConstraint.constant = offset
|
||||||
closeButtonTrailingConstraint.constant = offset
|
closeButtonTrailingConstraint.constant = offset
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -221,19 +221,10 @@ class LargeImageViewController: UIViewController, UIScrollViewDelegate {
|
||||||
dismiss(animated: true)
|
dismiss(animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func downloadPressed(_ sender: Any) {
|
@IBAction func sharePressed(_ sender: Any) {
|
||||||
guard let image = image else { return }
|
guard let image = image else { return }
|
||||||
PHPhotoLibrary.shared().performChanges({
|
let activityVC = UIActivityViewController(activityItems: [image], applicationActivities: nil)
|
||||||
PHAssetChangeRequest.creationRequestForAsset(from: image)
|
present(activityVC, animated: true)
|
||||||
}, completionHandler: { success, error in
|
|
||||||
if success {
|
|
||||||
return
|
|
||||||
} else if let error = error {
|
|
||||||
print("Couldn't save photo: \(error)")
|
|
||||||
} else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14810.11" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||||
<device id="retina4_7" orientation="portrait">
|
<device id="retina4_7" orientation="portrait" appearance="light"/>
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14766.13"/>
|
||||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -16,15 +14,15 @@
|
||||||
<outlet property="closeButtonTopConstraint" destination="ImD-2H-0XK" id="DUe-b1-a2N"/>
|
<outlet property="closeButtonTopConstraint" destination="ImD-2H-0XK" id="DUe-b1-a2N"/>
|
||||||
<outlet property="closeButtonTrailingConstraint" destination="JFe-ig-3Ic" id="cWO-Rr-y3F"/>
|
<outlet property="closeButtonTrailingConstraint" destination="JFe-ig-3Ic" id="cWO-Rr-y3F"/>
|
||||||
<outlet property="descriptionLabel" destination="eo5-fc-RV8" id="vrW-RJ-y5k"/>
|
<outlet property="descriptionLabel" destination="eo5-fc-RV8" id="vrW-RJ-y5k"/>
|
||||||
<outlet property="downloadButton" destination="vhp-0u-Q0S" id="JZS-K9-4w9"/>
|
|
||||||
<outlet property="downloadButtonLeadingConstraint" destination="MJx-2r-p0k" id="Dn5-Eg-Pid"/>
|
|
||||||
<outlet property="downloadButtonTopConstraint" destination="sgG-dC-xXP" id="Rjp-od-00F"/>
|
|
||||||
<outlet property="imageView" destination="qcn-1t-3sS" id="Q01-G2-y1c"/>
|
<outlet property="imageView" destination="qcn-1t-3sS" id="Q01-G2-y1c"/>
|
||||||
<outlet property="imageViewBottomConstraint" destination="3JF-Yo-5OR" id="1dh-W6-E8S"/>
|
<outlet property="imageViewBottomConstraint" destination="3JF-Yo-5OR" id="1dh-W6-E8S"/>
|
||||||
<outlet property="imageViewLeadingConstraint" destination="bI3-V8-M70" id="nIe-xI-E9u"/>
|
<outlet property="imageViewLeadingConstraint" destination="bI3-V8-M70" id="nIe-xI-E9u"/>
|
||||||
<outlet property="imageViewTopConstraint" destination="tfL-hp-2I2" id="EDV-RO-pTe"/>
|
<outlet property="imageViewTopConstraint" destination="tfL-hp-2I2" id="EDV-RO-pTe"/>
|
||||||
<outlet property="imageViewTrailingConstraint" destination="3bU-AI-KLl" id="IRq-jZ-u2s"/>
|
<outlet property="imageViewTrailingConstraint" destination="3bU-AI-KLl" id="IRq-jZ-u2s"/>
|
||||||
<outlet property="scrollView" destination="Skj-xq-AgQ" id="TFb-zF-m1b"/>
|
<outlet property="scrollView" destination="Skj-xq-AgQ" id="TFb-zF-m1b"/>
|
||||||
|
<outlet property="shareButton" destination="vhp-0u-Q0S" id="JZS-K9-4w9"/>
|
||||||
|
<outlet property="shareButtonLeadingConstraint" destination="MJx-2r-p0k" id="Dn5-Eg-Pid"/>
|
||||||
|
<outlet property="shareButtonTopConstraint" destination="sgG-dC-xXP" id="Rjp-od-00F"/>
|
||||||
<outlet property="topControlsHeightConstraint" destination="6XT-D6-8FS" id="mTB-LF-50H"/>
|
<outlet property="topControlsHeightConstraint" destination="6XT-D6-8FS" id="mTB-LF-50H"/>
|
||||||
<outlet property="topControlsView" destination="kHo-B9-R7a" id="8sJ-xQ-7ix"/>
|
<outlet property="topControlsView" destination="kHo-B9-R7a" id="8sJ-xQ-7ix"/>
|
||||||
<outlet property="view" destination="BJw-5C-9nT" id="1C2-VA-mNf"/>
|
<outlet property="view" destination="BJw-5C-9nT" id="1C2-VA-mNf"/>
|
||||||
|
@ -61,9 +59,9 @@
|
||||||
<constraint firstAttribute="width" constant="20" id="zWx-jJ-dBj"/>
|
<constraint firstAttribute="width" constant="20" id="zWx-jJ-dBj"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
<color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
<state key="normal" image="Download"/>
|
<state key="normal" image="square.and.arrow.up" catalog="system"/>
|
||||||
<connections>
|
<connections>
|
||||||
<action selector="downloadPressed:" destination="-1" eventType="touchUpInside" id="7Oz-zv-m2t"/>
|
<action selector="sharePressed:" destination="-1" eventType="touchUpInside" id="7Oz-zv-m2t"/>
|
||||||
</connections>
|
</connections>
|
||||||
</button>
|
</button>
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pnA-ne-k0v">
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pnA-ne-k0v">
|
||||||
|
@ -72,8 +70,9 @@
|
||||||
<constraint firstAttribute="width" constant="20" id="eg0-hN-rda"/>
|
<constraint firstAttribute="width" constant="20" id="eg0-hN-rda"/>
|
||||||
<constraint firstAttribute="height" constant="20" id="fmA-pI-8WB"/>
|
<constraint firstAttribute="height" constant="20" id="fmA-pI-8WB"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
||||||
<color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
<color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
<state key="normal" image="Close"/>
|
<state key="normal" image="xmark" catalog="system"/>
|
||||||
<connections>
|
<connections>
|
||||||
<action selector="closeButtonPressed:" destination="-1" eventType="touchUpInside" id="7o3-ET-EMo"/>
|
<action selector="closeButtonPressed:" destination="-1" eventType="touchUpInside" id="7o3-ET-EMo"/>
|
||||||
</connections>
|
</connections>
|
||||||
|
@ -124,7 +123,7 @@
|
||||||
</view>
|
</view>
|
||||||
</objects>
|
</objects>
|
||||||
<resources>
|
<resources>
|
||||||
<image name="Close" width="209" height="209"/>
|
<image name="square.and.arrow.up" catalog="system" width="56" height="64"/>
|
||||||
<image name="Download" width="284" height="284"/>
|
<image name="xmark" catalog="system" width="64" height="56"/>
|
||||||
</resources>
|
</resources>
|
||||||
</document>
|
</document>
|
||||||
|
|
Loading…
Reference in New Issue