Add the image title text to zoomed images. Issue #1468
This commit is contained in:
parent
0d915333e6
commit
c2d298b836
@ -12,8 +12,10 @@ class ImageViewController: UIViewController {
|
|||||||
|
|
||||||
@IBOutlet weak var shareButton: UIButton!
|
@IBOutlet weak var shareButton: UIButton!
|
||||||
@IBOutlet weak var imageScrollView: ImageScrollView!
|
@IBOutlet weak var imageScrollView: ImageScrollView!
|
||||||
|
@IBOutlet weak var titleLabel: UILabel!
|
||||||
|
|
||||||
var image: UIImage!
|
var image: UIImage!
|
||||||
|
var imageTitle: String?
|
||||||
var zoomedFrame: CGRect {
|
var zoomedFrame: CGRect {
|
||||||
return imageScrollView.zoomedFrame
|
return imageScrollView.zoomedFrame
|
||||||
}
|
}
|
||||||
@ -26,6 +28,8 @@ class ImageViewController: UIViewController {
|
|||||||
imageScrollView.imageContentMode = .aspectFit
|
imageScrollView.imageContentMode = .aspectFit
|
||||||
imageScrollView.initialOffset = .center
|
imageScrollView.initialOffset = .center
|
||||||
imageScrollView.display(image: image)
|
imageScrollView.display(image: image)
|
||||||
|
|
||||||
|
titleLabel.text = imageTitle ?? ""
|
||||||
}
|
}
|
||||||
|
|
||||||
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
|
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
|
||||||
|
@ -448,6 +448,7 @@ private struct ImageClickMessage: Codable {
|
|||||||
let y: Float
|
let y: Float
|
||||||
let width: Float
|
let width: Float
|
||||||
let height: Float
|
let height: Float
|
||||||
|
let imageTitle: String?
|
||||||
let imageURL: String
|
let imageURL: String
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -497,7 +498,7 @@ private extension WebViewController {
|
|||||||
|
|
||||||
transition.originImage = image
|
transition.originImage = image
|
||||||
|
|
||||||
coordinator.showFullScreenImage(image: image, transitioningDelegate: self)
|
coordinator.showFullScreenImage(image: image, imageTitle: clickMessage.imageTitle, transitioningDelegate: self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,6 +214,12 @@
|
|||||||
<viewLayoutGuide key="contentLayoutGuide" id="phv-DN-krZ"/>
|
<viewLayoutGuide key="contentLayoutGuide" id="phv-DN-krZ"/>
|
||||||
<viewLayoutGuide key="frameLayoutGuide" id="NNU-C8-Fsz"/>
|
<viewLayoutGuide key="frameLayoutGuide" id="NNU-C8-Fsz"/>
|
||||||
</scrollView>
|
</scrollView>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eMj-1g-3xm">
|
||||||
|
<rect key="frame" x="0.0" y="862" width="414" height="0.0"/>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RmY-a3-hUg">
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RmY-a3-hUg">
|
||||||
<rect key="frame" x="362" y="44" width="44" height="44"/>
|
<rect key="frame" x="362" y="44" width="44" height="44"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
@ -243,9 +249,12 @@
|
|||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstItem="RmY-a3-hUg" firstAttribute="top" secondItem="mbY-02-GFL" secondAttribute="top" id="A0i-Hs-1Ac"/>
|
<constraint firstItem="RmY-a3-hUg" firstAttribute="top" secondItem="mbY-02-GFL" secondAttribute="top" id="A0i-Hs-1Ac"/>
|
||||||
<constraint firstAttribute="bottom" secondItem="msG-pz-EKk" secondAttribute="bottom" id="AtA-bA-jDr"/>
|
<constraint firstAttribute="bottom" secondItem="msG-pz-EKk" secondAttribute="bottom" id="AtA-bA-jDr"/>
|
||||||
|
<constraint firstItem="eMj-1g-3xm" firstAttribute="trailing" secondItem="mbY-02-GFL" secondAttribute="trailing" id="E7e-Lv-6ZA"/>
|
||||||
<constraint firstAttribute="trailing" secondItem="msG-pz-EKk" secondAttribute="trailing" id="R49-qV-8nm"/>
|
<constraint firstAttribute="trailing" secondItem="msG-pz-EKk" secondAttribute="trailing" id="R49-qV-8nm"/>
|
||||||
<constraint firstItem="msG-pz-EKk" firstAttribute="leading" secondItem="w6Q-vH-063" secondAttribute="leading" id="XN1-xN-hYS"/>
|
<constraint firstItem="msG-pz-EKk" firstAttribute="leading" secondItem="w6Q-vH-063" secondAttribute="leading" id="XN1-xN-hYS"/>
|
||||||
|
<constraint firstItem="eMj-1g-3xm" firstAttribute="leading" secondItem="mbY-02-GFL" secondAttribute="leading" id="Xni-Dn-I3Z"/>
|
||||||
<constraint firstItem="mbY-02-GFL" firstAttribute="trailing" secondItem="RmY-a3-hUg" secondAttribute="trailing" constant="8" id="Zlz-lM-LV8"/>
|
<constraint firstItem="mbY-02-GFL" firstAttribute="trailing" secondItem="RmY-a3-hUg" secondAttribute="trailing" constant="8" id="Zlz-lM-LV8"/>
|
||||||
|
<constraint firstItem="mbY-02-GFL" firstAttribute="bottom" secondItem="eMj-1g-3xm" secondAttribute="bottom" id="eaS-iG-yMv"/>
|
||||||
<constraint firstItem="msG-pz-EKk" firstAttribute="top" secondItem="w6Q-vH-063" secondAttribute="top" id="p1a-s0-wdK"/>
|
<constraint firstItem="msG-pz-EKk" firstAttribute="top" secondItem="w6Q-vH-063" secondAttribute="top" id="p1a-s0-wdK"/>
|
||||||
<constraint firstItem="cXR-ll-xBx" firstAttribute="leading" secondItem="mbY-02-GFL" secondAttribute="leading" constant="8" id="vJs-LN-Ydd"/>
|
<constraint firstItem="cXR-ll-xBx" firstAttribute="leading" secondItem="mbY-02-GFL" secondAttribute="leading" constant="8" id="vJs-LN-Ydd"/>
|
||||||
<constraint firstItem="cXR-ll-xBx" firstAttribute="top" secondItem="mbY-02-GFL" secondAttribute="top" id="xVN-Qt-WYA"/>
|
<constraint firstItem="cXR-ll-xBx" firstAttribute="top" secondItem="mbY-02-GFL" secondAttribute="top" id="xVN-Qt-WYA"/>
|
||||||
@ -255,6 +264,7 @@
|
|||||||
<connections>
|
<connections>
|
||||||
<outlet property="imageScrollView" destination="msG-pz-EKk" id="dGi-M6-dcO"/>
|
<outlet property="imageScrollView" destination="msG-pz-EKk" id="dGi-M6-dcO"/>
|
||||||
<outlet property="shareButton" destination="RmY-a3-hUg" id="Z54-ah-WAI"/>
|
<outlet property="shareButton" destination="RmY-a3-hUg" id="Z54-ah-WAI"/>
|
||||||
|
<outlet property="titleLabel" destination="eMj-1g-3xm" id="6wF-IZ-fNw"/>
|
||||||
</connections>
|
</connections>
|
||||||
</viewController>
|
</viewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="ZPN-tH-JAG" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="ZPN-tH-JAG" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
|
@ -37,7 +37,8 @@ async function imageWasClicked(img) {
|
|||||||
x: rect.x,
|
x: rect.x,
|
||||||
y: rect.y,
|
y: rect.y,
|
||||||
width: rect.width,
|
width: rect.width,
|
||||||
height: rect.height
|
height: rect.height,
|
||||||
|
imageTitle: img.title
|
||||||
};
|
};
|
||||||
message.imageURL = reader.result;
|
message.imageURL = reader.result;
|
||||||
|
|
||||||
|
@ -988,9 +988,10 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
|||||||
masterFeedViewController.present(addViewController, animated: true)
|
masterFeedViewController.present(addViewController, animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func showFullScreenImage(image: UIImage, transitioningDelegate: UIViewControllerTransitioningDelegate) {
|
func showFullScreenImage(image: UIImage, imageTitle: String?, transitioningDelegate: UIViewControllerTransitioningDelegate) {
|
||||||
let imageVC = UIStoryboard.main.instantiateController(ofType: ImageViewController.self)
|
let imageVC = UIStoryboard.main.instantiateController(ofType: ImageViewController.self)
|
||||||
imageVC.image = image
|
imageVC.image = image
|
||||||
|
imageVC.imageTitle = imageTitle
|
||||||
imageVC.modalPresentationStyle = .currentContext
|
imageVC.modalPresentationStyle = .currentContext
|
||||||
imageVC.transitioningDelegate = transitioningDelegate
|
imageVC.transitioningDelegate = transitioningDelegate
|
||||||
rootSplitViewController.present(imageVC, animated: true)
|
rootSplitViewController.present(imageVC, animated: true)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user