Simplify UI, update domain
This commit is contained in:
@ -33,22 +33,24 @@ class SearchAndDisplayAccessory: PassthroughView {
|
||||
|
||||
// MARK: - Outlets
|
||||
|
||||
@IBOutlet weak var newImageView: PassthroughView!
|
||||
|
||||
@IBOutlet weak var capImage: RoundedImageView!
|
||||
|
||||
@IBOutlet weak var saveButton: UIButton!
|
||||
|
||||
@IBOutlet weak var deleteButton: UIButton!
|
||||
|
||||
@IBOutlet weak var cameraButton: UIButton!
|
||||
|
||||
@IBOutlet weak var searchBar: UISearchBar!
|
||||
|
||||
@IBOutlet weak var imageHeightContraint: NSLayoutConstraint!
|
||||
|
||||
// MARK: - Actions
|
||||
|
||||
@IBAction func cameraButtonPressed() {
|
||||
delegate?.capAccessoryCameraButtonPressed()
|
||||
if isShowingCapImage {
|
||||
discardImage()
|
||||
} else {
|
||||
delegate?.capAccessoryCameraButtonPressed()
|
||||
}
|
||||
}
|
||||
|
||||
@IBAction func saveButtonPressed() {
|
||||
@ -57,24 +59,20 @@ class SearchAndDisplayAccessory: PassthroughView {
|
||||
}
|
||||
}
|
||||
|
||||
@IBAction func cancelButtonPressed() {
|
||||
discardImage()
|
||||
}
|
||||
|
||||
// MARK: - Variables
|
||||
|
||||
var view: UIView?
|
||||
|
||||
weak var blurView: UIVisualEffectView?
|
||||
|
||||
weak var currentBlurContraint: NSLayoutConstraint?
|
||||
|
||||
weak var delegate: CapAccessoryDelegate?
|
||||
|
||||
var currentImage: UIImage? {
|
||||
capImage.image
|
||||
}
|
||||
|
||||
var isShowingCapImage: Bool {
|
||||
capImage.image != nil
|
||||
}
|
||||
|
||||
// MARK: - Setup
|
||||
|
||||
convenience init(width: CGFloat) {
|
||||
@ -98,29 +96,11 @@ class SearchAndDisplayAccessory: PassthroughView {
|
||||
//view!.autoresizingMask = .flexibleHeight
|
||||
addSubview(view!)
|
||||
|
||||
let blur = UIBlurEffect(style: .systemThinMaterial)
|
||||
let blurView = UIVisualEffectView(effect: blur)
|
||||
self.blurView = blurView
|
||||
blurView.translatesAutoresizingMaskIntoConstraints = false
|
||||
blurView.isUserInteractionEnabled = false
|
||||
insertSubview(blurView, at: 0)
|
||||
|
||||
let t = searchBar.topAnchor.constraint(equalTo: blurView.topAnchor)
|
||||
let b = searchBar.bottomAnchor.constraint(equalTo: blurView.bottomAnchor)
|
||||
let l = leadingAnchor.constraint(equalTo: blurView.leadingAnchor)
|
||||
let r = trailingAnchor.constraint(equalTo: blurView.trailingAnchor)
|
||||
addConstraints([t, b, l, r])
|
||||
|
||||
currentBlurContraint = t
|
||||
|
||||
self.newImageView.alpha = 0
|
||||
self.newImageView.isHidden = true
|
||||
hideImageView()
|
||||
|
||||
searchBar.text = nil
|
||||
searchBar.setShowsCancelButton(false, animated: false)
|
||||
searchBar.delegate = self
|
||||
|
||||
cameraButton.setImage(UIImage.templateImage(named: "camera_square"), for: .normal)
|
||||
}
|
||||
|
||||
// MARK: Search bar
|
||||
@ -132,15 +112,14 @@ class SearchAndDisplayAccessory: PassthroughView {
|
||||
|
||||
// MARK: Cap image
|
||||
|
||||
func showImageView(with image: UIImage, isUnlocked: Bool) {
|
||||
func showImageView(with image: UIImage) {
|
||||
capImage.image = image
|
||||
cameraButton.setImage(UIImage(systemName: "xmark"), for: .normal)
|
||||
|
||||
saveButton.isHidden = !isUnlocked
|
||||
saveButton.isEnabled = isUnlocked
|
||||
let text = isUnlocked ? "Delete" : "Clear image"
|
||||
deleteButton.setTitle(text, for: .normal)
|
||||
|
||||
showImageView()
|
||||
imageHeightContraint.constant = 90
|
||||
capImage.alpha = 1
|
||||
capImage.isHidden = false
|
||||
saveButton.isHidden = false
|
||||
}
|
||||
|
||||
func discardImage() {
|
||||
@ -152,24 +131,13 @@ class SearchAndDisplayAccessory: PassthroughView {
|
||||
}
|
||||
|
||||
func hideImageView() {
|
||||
currentBlurContraint?.isActive = false
|
||||
let t = searchBar.topAnchor.constraint(equalTo: blurView!.topAnchor)
|
||||
addConstraint(t)
|
||||
currentBlurContraint = t
|
||||
capImage.image = nil
|
||||
cameraButton.setImage(UIImage(systemName: "camera"), for: .normal)
|
||||
|
||||
self.newImageView.alpha = 0
|
||||
self.newImageView.isHidden = true
|
||||
self.capImage.image = nil
|
||||
}
|
||||
|
||||
private func showImageView() {
|
||||
currentBlurContraint?.isActive = false
|
||||
let t = blurView!.topAnchor.constraint(equalTo: saveButton.topAnchor, constant: -8)
|
||||
addConstraint(t)
|
||||
currentBlurContraint = t
|
||||
|
||||
self.newImageView.isHidden = false
|
||||
self.newImageView.alpha = 1
|
||||
//imageHeightContraint.constant = 0
|
||||
capImage.alpha = 0
|
||||
capImage.isHidden = true
|
||||
saveButton.isHidden = true
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<device id="retina4_7" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17125"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="System colors in document resources" minToolsVersion="11.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
@ -11,8 +13,7 @@
|
||||
<connections>
|
||||
<outlet property="cameraButton" destination="bIA-eq-Tn5" id="r0F-0j-Ve9"/>
|
||||
<outlet property="capImage" destination="vQm-nH-J8o" id="bQK-Vu-Z1U"/>
|
||||
<outlet property="deleteButton" destination="qhB-Sd-K8H" id="oym-9o-1m3"/>
|
||||
<outlet property="newImageView" destination="0wK-yR-rO9" id="Gi3-I6-Xv9"/>
|
||||
<outlet property="imageHeightContraint" destination="Phy-Uy-08W" id="gc0-1X-MIz"/>
|
||||
<outlet property="saveButton" destination="dt5-LD-28a" id="IYT-eN-3lb"/>
|
||||
<outlet property="searchBar" destination="bCh-7y-t0w" id="8Tt-4h-Fkg"/>
|
||||
</connections>
|
||||
@ -22,96 +23,90 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="145"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<visualEffectView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="B0c-fn-aK3">
|
||||
<rect key="frame" x="0.0" y="90" width="414" height="55"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" id="Arf-oz-vtV">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="55"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</view>
|
||||
<blurEffect style="regular"/>
|
||||
</visualEffectView>
|
||||
<searchBar contentMode="redraw" searchBarStyle="minimal" placeholder="Search caps" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bCh-7y-t0w">
|
||||
<rect key="frame" x="0.0" y="89" width="358" height="56"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" spellCheckingType="no" keyboardAppearance="alert" returnKeyType="search" smartDashesType="no" smartInsertDeleteType="no" smartQuotesType="no"/>
|
||||
<rect key="frame" x="0.0" y="90" width="359" height="55"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" spellCheckingType="no" returnKeyType="search" smartDashesType="no" smartInsertDeleteType="no" smartQuotesType="no"/>
|
||||
<scopeButtonTitles>
|
||||
<string>Title</string>
|
||||
<string>Title</string>
|
||||
</scopeButtonTitles>
|
||||
</searchBar>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bIA-eq-Tn5">
|
||||
<rect key="frame" x="358" y="89" width="56" height="56"/>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="vQm-nH-J8o" customClass="RoundedImageView" customModule="CapCollector" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="0.0" width="90" height="90"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="vQm-nH-J8o" secondAttribute="height" multiplier="1:1" id="WHb-tV-k4S"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="color" keyPath="borderColor">
|
||||
<color key="value" systemColor="secondaryLabelColor"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
|
||||
<real key="value" value="1"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dt5-LD-28a" userLabel="Save Button">
|
||||
<rect key="frame" x="5" y="0.0" width="90" height="90"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="90" id="Phy-Uy-08W"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<connections>
|
||||
<action selector="saveButtonPressed" destination="-1" eventType="touchUpInside" id="O49-6L-mNY"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bIA-eq-Tn5" userLabel="Camera/Clear Button">
|
||||
<rect key="frame" x="359" y="90" width="55" height="55"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="bIA-eq-Tn5" secondAttribute="height" multiplier="1:1" id="O09-ww-bHE"/>
|
||||
<constraint firstAttribute="height" constant="56" id="Y3N-l5-d94"/>
|
||||
</constraints>
|
||||
<inset key="imageEdgeInsets" minX="5" minY="5" maxX="5" maxY="5"/>
|
||||
<state key="normal" image="camera_square"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleTitle0"/>
|
||||
<state key="normal" image="camera" catalog="system">
|
||||
<preferredSymbolConfiguration key="preferredSymbolConfiguration" scale="large"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="cameraButtonPressed" destination="-1" eventType="touchUpInside" id="ooo-b8-Atj"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0wK-yR-rO9">
|
||||
<rect key="frame" x="0.0" y="-1" width="414" height="90"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="vQm-nH-J8o" customClass="RoundedImageView" customModule="CapCollector" customModuleProvider="target">
|
||||
<rect key="frame" x="2" y="2" width="86" height="86"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="vQm-nH-J8o" secondAttribute="height" multiplier="1:1" id="WHb-tV-k4S"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="color" keyPath="borderColor">
|
||||
<color key="value" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
|
||||
<real key="value" value="1"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dt5-LD-28a">
|
||||
<rect key="frame" x="96" y="60" width="151" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="30" id="Boy-dJ-2BJ"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<state key="normal" title="Save"/>
|
||||
<connections>
|
||||
<action selector="saveButtonPressed" destination="-1" eventType="touchUpInside" id="O49-6L-mNY"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qhB-Sd-K8H">
|
||||
<rect key="frame" x="255" y="58.5" width="151" height="33"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<state key="normal" title="Delete"/>
|
||||
<connections>
|
||||
<action selector="cancelButtonPressed" destination="-1" eventType="touchUpInside" id="4Sm-nV-aOd"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="vQm-nH-J8o" firstAttribute="leading" secondItem="0wK-yR-rO9" secondAttribute="leading" constant="2" id="6q2-Lc-eIF"/>
|
||||
<constraint firstItem="dt5-LD-28a" firstAttribute="leading" secondItem="vQm-nH-J8o" secondAttribute="trailing" constant="8" id="OUT-X8-cxn"/>
|
||||
<constraint firstAttribute="bottom" secondItem="vQm-nH-J8o" secondAttribute="bottom" constant="2" id="P8h-BA-8Yc"/>
|
||||
<constraint firstAttribute="height" constant="90" id="Rsk-qm-0WZ"/>
|
||||
<constraint firstAttribute="trailing" secondItem="qhB-Sd-K8H" secondAttribute="trailing" constant="8" id="fzn-7b-WrO"/>
|
||||
<constraint firstItem="vQm-nH-J8o" firstAttribute="top" secondItem="0wK-yR-rO9" secondAttribute="top" constant="2" id="h1D-Ut-lnp"/>
|
||||
<constraint firstAttribute="bottom" secondItem="dt5-LD-28a" secondAttribute="bottom" id="wFi-0u-ian"/>
|
||||
<constraint firstItem="qhB-Sd-K8H" firstAttribute="leading" secondItem="dt5-LD-28a" secondAttribute="trailing" constant="8" id="y1c-g7-5zg"/>
|
||||
<constraint firstItem="qhB-Sd-K8H" firstAttribute="centerY" secondItem="dt5-LD-28a" secondAttribute="centerY" id="yhy-DU-ReF"/>
|
||||
<constraint firstItem="qhB-Sd-K8H" firstAttribute="width" secondItem="dt5-LD-28a" secondAttribute="width" id="zpv-6V-gXr"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
|
||||
<constraints>
|
||||
<constraint firstItem="dt5-LD-28a" firstAttribute="top" secondItem="vQm-nH-J8o" secondAttribute="top" id="0fL-ow-Unw"/>
|
||||
<constraint firstItem="dt5-LD-28a" firstAttribute="leading" secondItem="vQm-nH-J8o" secondAttribute="leading" id="BDw-lR-hYd"/>
|
||||
<constraint firstItem="vUN-kp-3ea" firstAttribute="bottom" secondItem="B0c-fn-aK3" secondAttribute="bottom" id="Cbb-yb-0av"/>
|
||||
<constraint firstItem="vUN-kp-3ea" firstAttribute="bottom" secondItem="bIA-eq-Tn5" secondAttribute="bottom" id="Geo-F0-pdI"/>
|
||||
<constraint firstItem="bIA-eq-Tn5" firstAttribute="top" secondItem="bCh-7y-t0w" secondAttribute="top" id="IiT-eG-qfb"/>
|
||||
<constraint firstItem="vQm-nH-J8o" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" constant="5" id="Kf4-2d-yxI"/>
|
||||
<constraint firstItem="bCh-7y-t0w" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="M9M-He-vxM"/>
|
||||
<constraint firstItem="vUN-kp-3ea" firstAttribute="top" secondItem="0wK-yR-rO9" secondAttribute="top" constant="1" id="Uyp-J7-bKr"/>
|
||||
<constraint firstItem="vQm-nH-J8o" firstAttribute="top" secondItem="vUN-kp-3ea" secondAttribute="top" id="PPc-Zp-Vty"/>
|
||||
<constraint firstItem="B0c-fn-aK3" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="Pp8-wt-rM7"/>
|
||||
<constraint firstItem="dt5-LD-28a" firstAttribute="bottom" secondItem="vQm-nH-J8o" secondAttribute="bottom" id="VD3-fH-dsS"/>
|
||||
<constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="B0c-fn-aK3" secondAttribute="trailing" id="bri-jC-TDo"/>
|
||||
<constraint firstItem="dt5-LD-28a" firstAttribute="trailing" secondItem="vQm-nH-J8o" secondAttribute="trailing" id="eg2-RT-iVc"/>
|
||||
<constraint firstItem="bIA-eq-Tn5" firstAttribute="leading" secondItem="bCh-7y-t0w" secondAttribute="trailing" id="i7w-LO-9lv"/>
|
||||
<constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="0wK-yR-rO9" secondAttribute="trailing" id="iWS-vI-RAT"/>
|
||||
<constraint firstItem="bCh-7y-t0w" firstAttribute="top" secondItem="0wK-yR-rO9" secondAttribute="bottom" id="iab-RT-0nN"/>
|
||||
<constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="bIA-eq-Tn5" secondAttribute="trailing" id="kQV-mX-EoD"/>
|
||||
<constraint firstItem="B0c-fn-aK3" firstAttribute="top" secondItem="bCh-7y-t0w" secondAttribute="top" id="l7d-ZC-pNp"/>
|
||||
<constraint firstItem="vUN-kp-3ea" firstAttribute="bottom" secondItem="bCh-7y-t0w" secondAttribute="bottom" id="r8c-kO-KT5"/>
|
||||
<constraint firstItem="0wK-yR-rO9" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="rd3-iN-jtD"/>
|
||||
<constraint firstItem="bCh-7y-t0w" firstAttribute="top" secondItem="vQm-nH-J8o" secondAttribute="bottom" id="tBl-Ig-g9a"/>
|
||||
</constraints>
|
||||
<nil key="simulatedTopBarMetrics"/>
|
||||
<nil key="simulatedBottomBarMetrics"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
|
||||
<point key="canvasLocation" x="97.5" y="105.625"/>
|
||||
<point key="canvasLocation" x="96" y="104.7976011994003"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="camera_square" width="220" height="220"/>
|
||||
<image name="camera" catalog="system" width="128" height="94"/>
|
||||
<systemColor name="secondaryLabelColor">
|
||||
<color red="0.23529411764705882" green="0.23529411764705882" blue="0.2627450980392157" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</systemColor>
|
||||
</resources>
|
||||
</document>
|
||||
|
Reference in New Issue
Block a user