Manos Chorianopoulos

fix TelcoViewController ui

...@@ -2302,8 +2302,12 @@ ...@@ -2302,8 +2302,12 @@
2302 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8dQ-SF-Z4E"> 2302 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8dQ-SF-Z4E">
2303 <rect key="frame" x="0.0" y="44" width="414" height="852"/> 2303 <rect key="frame" x="0.0" y="44" width="414" height="852"/>
2304 <subviews> 2304 <subviews>
2305 + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="coupons_scrollview_white" translatesAutoresizingMaskIntoConstraints="NO" id="6ch-LK-yKY">
2306 + <rect key="frame" x="0.0" y="0.0" width="414" height="852"/>
2307 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
2308 + </imageView>
2305 <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" ambiguous="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AUR-1f-OXi"> 2309 <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" ambiguous="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AUR-1f-OXi">
2306 - <rect key="frame" x="0.0" y="5" width="414" height="847"/> 2310 + <rect key="frame" x="0.0" y="2" width="414" height="850"/>
2307 <subviews> 2311 <subviews>
2308 <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="YmP-9y-EV0"> 2312 <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="YmP-9y-EV0">
2309 <rect key="frame" x="0.0" y="0.0" width="414" height="852"/> 2313 <rect key="frame" x="0.0" y="0.0" width="414" height="852"/>
...@@ -2314,22 +2318,73 @@ ...@@ -2314,22 +2318,73 @@
2314 <constraint firstAttribute="height" constant="200" id="v6r-oa-0XG"/> 2318 <constraint firstAttribute="height" constant="200" id="v6r-oa-0XG"/>
2315 </constraints> 2319 </constraints>
2316 </imageView> 2320 </imageView>
2321 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7La-Zf-BX7">
2322 + <rect key="frame" x="20" y="220" width="70" height="70"/>
2323 + <subviews>
2324 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="G7w-Tk-Yfm">
2325 + <rect key="frame" x="10" y="25.5" width="50" height="19"/>
2326 + <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="19"/>
2327 + <color key="textColor" red="0.13333333333333333" green="0.66274509803921566" blue="0.70980392156862748" alpha="1" colorSpace="calibratedRGB"/>
2328 + <nil key="highlightedColor"/>
2329 + </label>
2330 + </subviews>
2331 + <color key="backgroundColor" systemColor="systemBackgroundColor"/>
2332 + <constraints>
2333 + <constraint firstAttribute="width" constant="70" id="3Uf-5S-KdI"/>
2334 + <constraint firstItem="G7w-Tk-Yfm" firstAttribute="leading" secondItem="7La-Zf-BX7" secondAttribute="leading" constant="10" id="DA1-Un-P7Y"/>
2335 + <constraint firstAttribute="height" constant="70" id="DIq-bh-Xza"/>
2336 + <constraint firstItem="G7w-Tk-Yfm" firstAttribute="centerY" secondItem="7La-Zf-BX7" secondAttribute="centerY" id="Gcm-sd-oIm"/>
2337 + <constraint firstItem="G7w-Tk-Yfm" firstAttribute="centerX" secondItem="7La-Zf-BX7" secondAttribute="centerX" id="HAp-Mg-ZHE"/>
2338 + <constraint firstAttribute="trailing" secondItem="G7w-Tk-Yfm" secondAttribute="trailing" constant="10" id="L9Q-bb-P3G"/>
2339 + </constraints>
2340 + </view>
2341 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yXI-Ds-V0T">
2342 + <rect key="frame" x="100" y="247.5" width="294" height="15"/>
2343 + <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="15"/>
2344 + <color key="textColor" red="0.25490196078431371" green="0.33333333333333331" blue="0.39215686274509803" alpha="1" colorSpace="calibratedRGB"/>
2345 + <nil key="highlightedColor"/>
2346 + </label>
2347 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7Bc-ly-ehN">
2348 + <rect key="frame" x="0.0" y="323" width="414" height="2"/>
2349 + <color key="backgroundColor" systemColor="systemBackgroundColor"/>
2350 + <constraints>
2351 + <constraint firstAttribute="height" constant="2" id="sgv-gT-iEr"/>
2352 + </constraints>
2353 + </view>
2354 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Xfg-Zl-DTT">
2355 + <rect key="frame" x="180.5" y="310" width="53.5" height="28"/>
2356 + <subviews>
2357 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vZf-KA-Yki">
2358 + <rect key="frame" x="10" y="8" width="33.5" height="15"/>
2359 + <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="15"/>
2360 + <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="calibratedRGB"/>
2361 + <nil key="highlightedColor"/>
2362 + </label>
2363 + </subviews>
2364 + <color key="backgroundColor" systemColor="systemBackgroundColor"/>
2365 + <constraints>
2366 + <constraint firstAttribute="trailing" secondItem="vZf-KA-Yki" secondAttribute="trailing" constant="10" id="EK6-Mv-bxD"/>
2367 + <constraint firstItem="vZf-KA-Yki" firstAttribute="top" secondItem="Xfg-Zl-DTT" secondAttribute="top" constant="8" id="KXe-Oo-bS1"/>
2368 + <constraint firstAttribute="bottom" secondItem="vZf-KA-Yki" secondAttribute="bottom" constant="5" id="tjQ-ut-cqy"/>
2369 + <constraint firstItem="vZf-KA-Yki" firstAttribute="leading" secondItem="Xfg-Zl-DTT" secondAttribute="leading" constant="10" id="tzo-nt-cTZ"/>
2370 + </constraints>
2371 + </view>
2317 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="title" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XJ0-lK-2fk"> 2372 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="title" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XJ0-lK-2fk">
2318 - <rect key="frame" x="20" y="230" width="374" height="17"/> 2373 + <rect key="frame" x="20" y="368" width="374" height="17"/>
2319 - <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="17"/> 2374 + <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="17"/>
2320 <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/> 2375 <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
2321 <nil key="highlightedColor"/> 2376 <nil key="highlightedColor"/>
2322 </label> 2377 </label>
2323 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="description" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Toi-hN-Bn7"> 2378 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="description" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Toi-hN-Bn7">
2324 - <rect key="frame" x="20" y="272" width="374" height="17"/> 2379 + <rect key="frame" x="20" y="410" width="374" height="17"/>
2325 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="17"/> 2380 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="17"/>
2326 <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/> 2381 <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
2327 <nil key="highlightedColor"/> 2382 <nil key="highlightedColor"/>
2328 </label> 2383 </label>
2329 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uDO-0Z-xFa"> 2384 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uDO-0Z-xFa">
2330 - <rect key="frame" x="83" y="389" width="248" height="50"/> 2385 + <rect key="frame" x="83" y="445" width="248" height="40"/>
2331 <constraints> 2386 <constraints>
2332 - <constraint firstAttribute="height" constant="50" id="Mve-Wm-jeX"/> 2387 + <constraint firstAttribute="height" constant="40" id="Mve-Wm-jeX"/>
2333 </constraints> 2388 </constraints>
2334 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="16"/> 2389 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="16"/>
2335 <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> 2390 <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
...@@ -2337,25 +2392,73 @@ ...@@ -2337,25 +2392,73 @@
2337 <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 2392 <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
2338 </state> 2393 </state>
2339 <connections> 2394 <connections>
2340 - <action selector="activateButtomAction:" destination="lMR-D4-SOW" eventType="touchUpInside" id="emx-wy-PeW"/> 2395 + <action selector="activateButtomAction:" destination="lMR-D4-SOW" eventType="touchUpInside" id="Pab-FA-qhu"/>
2341 </connections> 2396 </connections>
2342 </button> 2397 </button>
2398 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ulI-Td-g6v">
2399 + <rect key="frame" x="103.5" y="495" width="207" height="40"/>
2400 + <constraints>
2401 + <constraint firstAttribute="height" constant="40" id="72j-BL-Ejm"/>
2402 + </constraints>
2403 + <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="16"/>
2404 + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="5" maxY="0.0"/>
2405 + <state key="normal" title="Δες Περισσότερα" image="ic_down_dark">
2406 + <color key="titleColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
2407 + <preferredSymbolConfiguration key="preferredSymbolConfiguration"/>
2408 + </state>
2409 + <connections>
2410 + <action selector="moreButtonAction:" destination="lMR-D4-SOW" eventType="touchUpInside" id="xW0-ds-4xL"/>
2411 + </connections>
2412 + </button>
2413 + <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" editable="NO" selectable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mCl-kM-ssj">
2414 + <rect key="frame" x="20" y="545" width="374" height="0.0"/>
2415 + <color key="backgroundColor" systemColor="systemBackgroundColor"/>
2416 + <constraints>
2417 + <constraint firstAttribute="height" id="Uys-zo-ERe"/>
2418 + </constraints>
2419 + <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="calibratedRGB"/>
2420 + <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="13"/>
2421 + <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
2422 + </textView>
2343 </subviews> 2423 </subviews>
2344 <color key="backgroundColor" systemColor="systemBackgroundColor"/> 2424 <color key="backgroundColor" systemColor="systemBackgroundColor"/>
2345 <constraints> 2425 <constraints>
2426 + <constraint firstItem="Xfg-Zl-DTT" firstAttribute="centerX" secondItem="YmP-9y-EV0" secondAttribute="centerX" id="1RR-zs-8XM"/>
2346 <constraint firstItem="QlP-ct-u6O" firstAttribute="top" secondItem="YmP-9y-EV0" secondAttribute="top" id="2z7-Gk-jiP"/> 2427 <constraint firstItem="QlP-ct-u6O" firstAttribute="top" secondItem="YmP-9y-EV0" secondAttribute="top" id="2z7-Gk-jiP"/>
2347 <constraint firstItem="uDO-0Z-xFa" firstAttribute="centerX" secondItem="YmP-9y-EV0" secondAttribute="centerX" id="3jp-jm-qXu"/> 2428 <constraint firstItem="uDO-0Z-xFa" firstAttribute="centerX" secondItem="YmP-9y-EV0" secondAttribute="centerX" id="3jp-jm-qXu"/>
2429 + <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="ulI-Td-g6v" secondAttribute="bottom" constant="30" id="53n-kr-Q6B"/>
2430 + <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="mCl-kM-ssj" secondAttribute="bottom" constant="30" id="5nq-P2-bOH"/>
2431 + <constraint firstAttribute="trailing" secondItem="7Bc-ly-ehN" secondAttribute="trailing" id="7VM-tt-jqT"/>
2432 + <constraint firstItem="Xfg-Zl-DTT" firstAttribute="top" secondItem="7La-Zf-BX7" secondAttribute="bottom" constant="20" id="9sp-tg-Dk7"/>
2348 <constraint firstItem="Toi-hN-Bn7" firstAttribute="top" secondItem="XJ0-lK-2fk" secondAttribute="bottom" constant="25" id="A5L-XB-0ef"/> 2433 <constraint firstItem="Toi-hN-Bn7" firstAttribute="top" secondItem="XJ0-lK-2fk" secondAttribute="bottom" constant="25" id="A5L-XB-0ef"/>
2349 <constraint firstAttribute="trailing" secondItem="QlP-ct-u6O" secondAttribute="trailing" id="Bv6-ZV-dmS"/> 2434 <constraint firstAttribute="trailing" secondItem="QlP-ct-u6O" secondAttribute="trailing" id="Bv6-ZV-dmS"/>
2350 - <constraint firstItem="XJ0-lK-2fk" firstAttribute="top" secondItem="QlP-ct-u6O" secondAttribute="bottom" constant="30" id="QVa-2f-1RG"/> 2435 + <constraint firstAttribute="trailing" secondItem="yXI-Ds-V0T" secondAttribute="trailing" constant="20" id="HrW-ZG-fgo"/>
2436 + <constraint firstAttribute="trailing" secondItem="mCl-kM-ssj" secondAttribute="trailing" constant="20" id="IT9-b1-n1C"/>
2437 + <constraint firstItem="mCl-kM-ssj" firstAttribute="leading" secondItem="YmP-9y-EV0" secondAttribute="leading" constant="20" id="KKR-28-Uov"/>
2438 + <constraint firstItem="yXI-Ds-V0T" firstAttribute="centerY" secondItem="7La-Zf-BX7" secondAttribute="centerY" id="NPi-C7-6J9"/>
2439 + <constraint firstItem="7La-Zf-BX7" firstAttribute="top" secondItem="QlP-ct-u6O" secondAttribute="bottom" constant="20" id="NiY-9G-88D"/>
2440 + <constraint firstItem="XJ0-lK-2fk" firstAttribute="top" secondItem="Xfg-Zl-DTT" secondAttribute="bottom" constant="30" id="QVa-2f-1RG"/>
2441 + <constraint firstItem="ulI-Td-g6v" firstAttribute="centerX" secondItem="YmP-9y-EV0" secondAttribute="centerX" id="VwY-kf-7fU"/>
2442 + <constraint firstItem="mCl-kM-ssj" firstAttribute="top" secondItem="ulI-Td-g6v" secondAttribute="bottom" constant="10" id="Yel-xv-ent"/>
2351 <constraint firstAttribute="trailing" secondItem="XJ0-lK-2fk" secondAttribute="trailing" constant="20" id="cco-tR-YlH"/> 2443 <constraint firstAttribute="trailing" secondItem="XJ0-lK-2fk" secondAttribute="trailing" constant="20" id="cco-tR-YlH"/>
2444 + <constraint firstItem="7Bc-ly-ehN" firstAttribute="leading" secondItem="YmP-9y-EV0" secondAttribute="leading" id="jgD-2r-FeR"/>
2445 + <constraint firstItem="ulI-Td-g6v" firstAttribute="width" secondItem="YmP-9y-EV0" secondAttribute="width" multiplier="0.5" id="lT3-Qx-qTs"/>
2352 <constraint firstItem="uDO-0Z-xFa" firstAttribute="width" secondItem="YmP-9y-EV0" secondAttribute="width" multiplier="0.6" id="mxO-XZ-O4t"/> 2446 <constraint firstItem="uDO-0Z-xFa" firstAttribute="width" secondItem="YmP-9y-EV0" secondAttribute="width" multiplier="0.6" id="mxO-XZ-O4t"/>
2353 - <constraint firstItem="uDO-0Z-xFa" firstAttribute="top" secondItem="Toi-hN-Bn7" secondAttribute="bottom" constant="100" id="oRo-i8-goh"/> 2447 + <constraint firstItem="uDO-0Z-xFa" firstAttribute="top" secondItem="XJ0-lK-2fk" secondAttribute="bottom" constant="60" id="oRo-i8-goh"/>
2354 <constraint firstItem="XJ0-lK-2fk" firstAttribute="leading" secondItem="YmP-9y-EV0" secondAttribute="leading" constant="20" id="olo-Ei-uC2"/> 2448 <constraint firstItem="XJ0-lK-2fk" firstAttribute="leading" secondItem="YmP-9y-EV0" secondAttribute="leading" constant="20" id="olo-Ei-uC2"/>
2355 <constraint firstItem="QlP-ct-u6O" firstAttribute="leading" secondItem="YmP-9y-EV0" secondAttribute="leading" id="pwh-Uf-942"/> 2449 <constraint firstItem="QlP-ct-u6O" firstAttribute="leading" secondItem="YmP-9y-EV0" secondAttribute="leading" id="pwh-Uf-942"/>
2356 <constraint firstAttribute="trailing" secondItem="Toi-hN-Bn7" secondAttribute="trailing" constant="20" id="rV1-Mg-rhg"/> 2450 <constraint firstAttribute="trailing" secondItem="Toi-hN-Bn7" secondAttribute="trailing" constant="20" id="rV1-Mg-rhg"/>
2451 + <constraint firstItem="ulI-Td-g6v" firstAttribute="top" secondItem="uDO-0Z-xFa" secondAttribute="bottom" constant="10" id="tfm-M4-2Ib"/>
2452 + <constraint firstItem="7La-Zf-BX7" firstAttribute="leading" secondItem="YmP-9y-EV0" secondAttribute="leading" constant="20" id="uzz-Wx-LMR"/>
2453 + <constraint firstItem="yXI-Ds-V0T" firstAttribute="leading" secondItem="7La-Zf-BX7" secondAttribute="trailing" constant="10" id="wV4-sO-FWF"/>
2454 + <constraint firstItem="7Bc-ly-ehN" firstAttribute="centerY" secondItem="Xfg-Zl-DTT" secondAttribute="centerY" id="x3N-iw-dch"/>
2357 <constraint firstItem="Toi-hN-Bn7" firstAttribute="leading" secondItem="YmP-9y-EV0" secondAttribute="leading" constant="20" id="xyt-Bc-HTA"/> 2455 <constraint firstItem="Toi-hN-Bn7" firstAttribute="leading" secondItem="YmP-9y-EV0" secondAttribute="leading" constant="20" id="xyt-Bc-HTA"/>
2358 </constraints> 2456 </constraints>
2457 + <variation key="default">
2458 + <mask key="subviews">
2459 + <exclude reference="Toi-hN-Bn7"/>
2460 + </mask>
2461 + </variation>
2359 </view> 2462 </view>
2360 </subviews> 2463 </subviews>
2361 <constraints> 2464 <constraints>
...@@ -2389,14 +2492,23 @@ ...@@ -2389,14 +2492,23 @@
2389 </constraints> 2492 </constraints>
2390 </view> 2493 </view>
2391 <connections> 2494 <connections>
2392 - <outlet property="activateButton" destination="uDO-0Z-xFa" id="7rK-iU-AKD"/> 2495 + <outlet property="activateButton" destination="uDO-0Z-xFa" id="EkA-Ab-l2x"/>
2393 - <outlet property="descriptionLabel" destination="Toi-hN-Bn7" id="ayJ-bz-oz1"/> 2496 + <outlet property="backgroundImage" destination="6ch-LK-yKY" id="g0Y-mW-Lxv"/>
2394 - <outlet property="heroImage" destination="QlP-ct-u6O" id="CEs-7T-KP7"/> 2497 + <outlet property="borderLineView" destination="7Bc-ly-ehN" id="JFL-gS-QxZ"/>
2395 - <outlet property="heroImageHeight" destination="v6r-oa-0XG" id="4wy-UN-qYB"/> 2498 + <outlet property="descriptionLabel" destination="Toi-hN-Bn7" id="fMC-DH-36z"/>
2396 - <outlet property="mainView" destination="8dQ-SF-Z4E" id="gUh-1a-Msg"/> 2499 + <outlet property="giftDurationLabel" destination="vZf-KA-Yki" id="8DW-bF-Ryx"/>
2397 - <outlet property="nameLabel" destination="XJ0-lK-2fk" id="67q-Es-R6T"/> 2500 + <outlet property="giftDurationView" destination="Xfg-Zl-DTT" id="gAy-uL-zN7"/>
2398 - <outlet property="scrollContentView" destination="YmP-9y-EV0" id="rax-VX-dO0"/> 2501 + <outlet property="giftTypeLabel" destination="yXI-Ds-V0T" id="ux6-O8-GPe"/>
2399 - <outlet property="scrollView" destination="AUR-1f-OXi" id="ZEZ-CZ-8og"/> 2502 + <outlet property="heroImage" destination="QlP-ct-u6O" id="lCm-UF-0Sy"/>
2503 + <outlet property="heroImageHeight" destination="v6r-oa-0XG" id="3Mg-z2-ETz"/>
2504 + <outlet property="moreButton" destination="ulI-Td-g6v" id="4Xj-S3-FzE"/>
2505 + <outlet property="moreTextView" destination="mCl-kM-ssj" id="cC6-pL-jqp"/>
2506 + <outlet property="moreTextViewHeight" destination="Uys-zo-ERe" id="W9H-V2-oOm"/>
2507 + <outlet property="nameLabel" destination="XJ0-lK-2fk" id="tL4-Ay-gb9"/>
2508 + <outlet property="scrollContentView" destination="YmP-9y-EV0" id="PLV-e9-qOd"/>
2509 + <outlet property="scrollView" destination="AUR-1f-OXi" id="u5N-8L-BVU"/>
2510 + <outlet property="valueLabel" destination="G7w-Tk-Yfm" id="9oX-f1-xS4"/>
2511 + <outlet property="valueView" destination="7La-Zf-BX7" id="Jeq-bO-HrK"/>
2400 </connections> 2512 </connections>
2401 </viewController> 2513 </viewController>
2402 <placeholder placeholderIdentifier="IBFirstResponder" id="UAL-zF-u8I" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> 2514 <placeholder placeholderIdentifier="IBFirstResponder" id="UAL-zF-u8I" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
......
...@@ -9,6 +9,7 @@ import UIKit ...@@ -9,6 +9,7 @@ import UIKit
9 9
10 @objc public class TelcoViewController: UIViewController, UIPopoverControllerDelegate { 10 @objc public class TelcoViewController: UIViewController, UIPopoverControllerDelegate {
11 @IBOutlet weak var mainView: UIView! 11 @IBOutlet weak var mainView: UIView!
12 + @IBOutlet weak var backgroundImage: UIImageView!
12 @IBOutlet weak var scrollView: UIScrollView! 13 @IBOutlet weak var scrollView: UIScrollView!
13 @IBOutlet weak var scrollContentView: UIView! 14 @IBOutlet weak var scrollContentView: UIView!
14 @IBOutlet weak var heroImage: UIImageView! 15 @IBOutlet weak var heroImage: UIImageView!
...@@ -16,6 +17,15 @@ import UIKit ...@@ -16,6 +17,15 @@ import UIKit
16 @IBOutlet weak var nameLabel: UILabel! 17 @IBOutlet weak var nameLabel: UILabel!
17 @IBOutlet weak var descriptionLabel: UILabel! 18 @IBOutlet weak var descriptionLabel: UILabel!
18 @IBOutlet weak var activateButton: UIButton! 19 @IBOutlet weak var activateButton: UIButton!
20 + @IBOutlet weak var valueView: UIView!
21 + @IBOutlet weak var valueLabel: UILabel!
22 + @IBOutlet weak var giftTypeLabel: UILabel!
23 + @IBOutlet weak var giftDurationView: UIView!
24 + @IBOutlet weak var giftDurationLabel: UILabel!
25 + @IBOutlet weak var borderLineView: UIView!
26 + @IBOutlet weak var moreButton: UIButton!
27 + @IBOutlet weak var moreTextView: UITextView!
28 + @IBOutlet weak var moreTextViewHeight: NSLayoutConstraint!
19 29
20 let uiscreen: CGRect = UIScreen.main.bounds 30 let uiscreen: CGRect = UIScreen.main.bounds
21 31
...@@ -24,6 +34,8 @@ import UIKit ...@@ -24,6 +34,8 @@ import UIKit
24 var selectedNumber: String = "" 34 var selectedNumber: String = ""
25 public var numbersList: Array<String> = [] 35 public var numbersList: Array<String> = []
26 36
37 + var moreVisible: Bool = false;
38 +
27 public override func viewDidLoad() { 39 public override func viewDidLoad() {
28 40
29 super.viewDidLoad() 41 super.viewDidLoad()
...@@ -33,27 +45,76 @@ import UIKit ...@@ -33,27 +45,76 @@ import UIKit
33 // Do any additional setup after loading the view. 45 // Do any additional setup after loading the view.
34 getProfileRequest() 46 getProfileRequest()
35 47
36 - setBackButton() 48 + setBackButton("ic_close")
37 - setNavigationTitle("Ενεργοποίηση") 49 + setNavigationTitle(ccms?._titleOffer ?? "")
50 +
51 + backgroundImage.image = UIImage(named: "coupons_scrollview_white", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)
38 52
39 scrollView.clipsToBounds = true 53 scrollView.clipsToBounds = true
40 scrollView.layer.cornerRadius = 30 54 scrollView.layer.cornerRadius = 30
41 scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius 55 scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius
42 56
43 - heroImage.load(link: ccms?._imageUrl ?? "", placeholder: UIImage(), cache: URLCache()) 57 + heroImage.load(link: ccms?._imageOfferUrl ?? "", placeholder: UIImage(), cache: URLCache())
44 heroImage.contentMode = .scaleAspectFill 58 heroImage.contentMode = .scaleAspectFill
45 heroImageHeight.constant = self.uiscreen.height * 0.25 59 heroImageHeight.constant = self.uiscreen.height * 0.25
46 - nameLabel.text = ccms?._title ?? "" 60 + nameLabel.text = ccms?._description ?? ""
47 - descriptionLabel.text = ccms?._subtitle ?? "" 61 + // descriptionLabel.text = ccms?._subtitle ?? ""
62 +
63 + valueView.gradientBorder(width: 1, colors: [UIColor(rgb: 0x07A2D1), UIColor(rgb: 0x73CA34)], startPoint: .unitCoordinate(.bottomLeft), endPoint: .unitCoordinate(.topRight), andRoundCornersWithRadius: 35)
64 + valueLabel.text = ccms?._giftValue ?? ""
65 + giftTypeLabel.text = ccms?._giftType ?? ""
66 +
67 + giftDurationLabel.text = ccms?._duration ?? ""
68 + giftDurationView.frame = CGRect(x: 0.0, y: 0.0, width: giftDurationLabel.intrinsicContentSize.width + 20, height: giftDurationView.frame.height)
69 + giftDurationView.gradientBorder(width: 2, colors: [UIColor(rgb: 0x65DD6B), UIColor(rgb: 0x0D81B8)], startPoint: .unitCoordinate(.left), endPoint: .unitCoordinate(.right), andRoundCornersWithRadius: 35)
70 +
71 + borderLineView.applyGradient(colours: [UIColor(rgb: 0x0AA3CD), UIColor(rgb: 0x6ECA43)], gradient: GradientOrientation.horizontal, cornerRadius: 0.0)
48 72
49 activateButton.titleLabel?.font = UIFont(name: "PFSquareSansPro-Medium", size: 16) 73 activateButton.titleLabel?.font = UIFont(name: "PFSquareSansPro-Medium", size: 16)
50 activateButton.setTitle("Ενεργοποίηση", for: .normal) 74 activateButton.setTitle("Ενεργοποίηση", for: .normal)
51 activateButton.setTitleColor(.white, for: .normal) 75 activateButton.setTitleColor(.white, for: .normal)
52 activateButton.backgroundColor = UIColor(red: 0.47, green: 0.75, blue: 0.08, alpha: 1.00) 76 activateButton.backgroundColor = UIColor(red: 0.47, green: 0.75, blue: 0.08, alpha: 1.00)
53 activateButton.layer.cornerRadius = 12.0 77 activateButton.layer.cornerRadius = 12.0
78 +
79 + moreButton.titleLabel?.font = UIFont(name: "PFSquareSansPro-Regular", size: 16)
80 +// termsButton.imageView?.layer.transform = CATransform3DMakeScale(1.5, 1.5, 1.5)
81 + moreButton.setTitle("Δες Περισσότερα", for: .normal)
82 + moreButton.setTitleColor(UIColor(red: 0.25, green: 0.33, blue: 0.39, alpha: 1.00), for: .normal)
83 + moreButton.setImage(UIImage(named: "ic_down_dark.png"), for: .normal)
84 + // TODO: UNCOMMENT
85 +// moreButton.setImage(UIImage(named: "ic_down_dark.png", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil), for: .normal)
86 + moreButton.semanticContentAttribute = .forceRightToLeft
87 + moreButton.tintColor = UIColor(red: 0.21, green: 0.32, blue: 0.41, alpha: 1.00)
88 + moreButton.imageEdgeInsets = UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 0);
89 + moreButton.titleEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 5);
90 +
91 +// let htmlText = ccms?._description ?? ""
92 +// moreTextView.attributedText = htmlText.htmlToAttributedString
93 + moreTextView.text = ccms?._termsAndConditions ?? ""
94 + moreTextView.font = UIFont(name: "PFSquareSansPro-Regular", size: 13)
95 + moreTextView.textColor = UIColor(rgb: 0x415564)
96 +// moreTextView.textAlignment = .center
97 + moreTextView.isScrollEnabled = false
98 +
99 + toggleMore()
54 } 100 }
55 101
56 // MARK: - Functions 102 // MARK: - Functions
103 + func toggleMore() {
104 + if (moreVisible) {
105 + moreTextView.isHidden = false
106 + let targetSize = CGSize(width: moreTextView.frame.width, height: CGFloat(MAXFLOAT))
107 + moreTextViewHeight.constant = moreTextView.sizeThatFits(targetSize).height
108 +
109 + moreButton.setImage(UIImage(named: "ic_up_dark.png", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil), for: .normal)
110 + } else {
111 + moreTextView.isHidden = true
112 + moreTextViewHeight.constant = CGFloat(0)
113 +
114 + moreButton.setImage(UIImage(named: "ic_down_dark.png", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil), for: .normal)
115 + }
116 + }
117 +
57 func showConfirmDialog() -> Void { 118 func showConfirmDialog() -> Void {
58 119
59 let alert = UIAlertController(title: "Ενεργοποίηση υπηρεσίας", message: "Θέλετε να γίνει ενεργοποίηση στο Κινητό μου;", preferredStyle: .alert) 120 let alert = UIAlertController(title: "Ενεργοποίηση υπηρεσίας", message: "Θέλετε να γίνει ενεργοποίηση στο Κινητό μου;", preferredStyle: .alert)
...@@ -162,6 +223,11 @@ import UIKit ...@@ -162,6 +223,11 @@ import UIKit
162 @IBAction func activateButtomAction(_ sender: Any) { 223 @IBAction func activateButtomAction(_ sender: Any) {
163 self.numbersPopupTapped(sender) 224 self.numbersPopupTapped(sender)
164 } 225 }
226 +
227 + @IBAction func moreButtonAction(_ sender: Any) {
228 + moreVisible = !moreVisible
229 + toggleMore()
230 + }
165 } 231 }
166 232
167 // MARK: NumbersPopup 233 // MARK: NumbersPopup
......
...@@ -8,23 +8,33 @@ ...@@ -8,23 +8,33 @@
8 import UIKit 8 import UIKit
9 9
10 extension UIViewController { 10 extension UIViewController {
11 - func setBackButton() { 11 + func setBackButton(_ icon:String = "ic_back") {
12 let uiscreen: CGRect = UIScreen.main.bounds 12 let uiscreen: CGRect = UIScreen.main.bounds
13 13
14 let backButton = UIButton(type: UIButton.ButtonType.custom) as UIButton 14 let backButton = UIButton(type: UIButton.ButtonType.custom) as UIButton
15 + if (icon == "ic_close") {
16 + backButton.frame = CGRect(x: 0, y: 0, width: uiscreen.height * 0.025, height: uiscreen.height * 0.025)
17 + } else {
15 backButton.frame = CGRect(x: 0, y: 0, width: uiscreen.height * 0.025, height: uiscreen.height * 0.02) 18 backButton.frame = CGRect(x: 0, y: 0, width: uiscreen.height * 0.025, height: uiscreen.height * 0.02)
19 + }
16 backButton.imageView!.contentMode = .scaleAspectFit 20 backButton.imageView!.contentMode = .scaleAspectFit
17 //backButton.setBackgroundImage(UIImage(named:Assets.Navigation.backButton), for: UIControlState()) 21 //backButton.setBackgroundImage(UIImage(named:Assets.Navigation.backButton), for: UIControlState())
18 - backButton.setImage(UIImage(named: "ic_back", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil), for: .normal) 22 + backButton.setImage(UIImage(named: icon, in: Bundle(for: MyEmptyClass.self), compatibleWith: nil), for: .normal)
19 // backButton.imageEdgeInsets = UIEdgeInsets(top: 0, left: -20, bottom: 0, right: 0) 23 // backButton.imageEdgeInsets = UIEdgeInsets(top: 0, left: -20, bottom: 0, right: 0)
20 backButton.addTarget(self, action: #selector(moveToBack(_:)), for: .touchUpInside) 24 backButton.addTarget(self, action: #selector(moveToBack(_:)), for: .touchUpInside)
21 25
22 26
23 backButton.translatesAutoresizingMaskIntoConstraints = false 27 backButton.translatesAutoresizingMaskIntoConstraints = false
24 // Add width, height constraints 28 // Add width, height constraints
29 + if (icon == "ic_close") {
30 + let widthContraints = NSLayoutConstraint(item: backButton, attribute: NSLayoutConstraint.Attribute.width, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: uiscreen.height * 0.025)
31 + let heightContraints = NSLayoutConstraint(item: backButton, attribute: NSLayoutConstraint.Attribute.height, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: uiscreen.height * 0.025)
32 + NSLayoutConstraint.activate([heightContraints,widthContraints])
33 + } else {
25 let widthContraints = NSLayoutConstraint(item: backButton, attribute: NSLayoutConstraint.Attribute.width, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: uiscreen.height * 0.025) 34 let widthContraints = NSLayoutConstraint(item: backButton, attribute: NSLayoutConstraint.Attribute.width, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: uiscreen.height * 0.025)
26 let heightContraints = NSLayoutConstraint(item: backButton, attribute: NSLayoutConstraint.Attribute.height, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: uiscreen.height * 0.02) 35 let heightContraints = NSLayoutConstraint(item: backButton, attribute: NSLayoutConstraint.Attribute.height, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: uiscreen.height * 0.02)
27 NSLayoutConstraint.activate([heightContraints,widthContraints]) 36 NSLayoutConstraint.activate([heightContraints,widthContraints])
37 + }
28 38
29 let leftBarButtonItem: UIBarButtonItem = UIBarButtonItem(customView: backButton) 39 let leftBarButtonItem: UIBarButtonItem = UIBarButtonItem(customView: backButton)
30 self.navigationItem.setLeftBarButton(leftBarButtonItem, animated: false) 40 self.navigationItem.setLeftBarButton(leftBarButtonItem, animated: false)
...@@ -217,3 +227,65 @@ extension UIFont { ...@@ -217,3 +227,65 @@ extension UIFont {
217 return self.systemFont(ofSize: pointSize, weight: .medium) 227 return self.systemFont(ofSize: pointSize, weight: .medium)
218 } 228 }
219 } 229 }
230 +
231 +public extension UIView {
232 +
233 + private static let kLayerNameGradientBorder = "GradientBorderLayer"
234 +
235 + func gradientBorder(width: CGFloat,
236 + colors: [UIColor],
237 + startPoint: CGPoint = CGPoint(x: 0.5, y: 0.0),
238 + endPoint: CGPoint = CGPoint(x: 0.5, y: 1.0),
239 + andRoundCornersWithRadius cornerRadius: CGFloat = 0) {
240 +
241 + let existingBorder = gradientBorderLayer()
242 + let border = existingBorder ?? CAGradientLayer()
243 + border.frame = CGRect(x: bounds.origin.x, y: bounds.origin.y,
244 + width: bounds.size.width + width, height: bounds.size.height + width)
245 + border.colors = colors.map { return $0.cgColor }
246 + border.startPoint = startPoint
247 + border.endPoint = endPoint
248 +
249 + let mask = CAShapeLayer()
250 + let maskRect = CGRect(x: bounds.origin.x + width/2, y: bounds.origin.y + width/2,
251 + width: bounds.size.width - width, height: bounds.size.height - width)
252 + mask.path = UIBezierPath(roundedRect: maskRect, cornerRadius: cornerRadius).cgPath
253 + mask.fillColor = UIColor.clear.cgColor
254 + mask.strokeColor = UIColor.white.cgColor
255 + mask.lineWidth = width
256 +
257 + border.mask = mask
258 +
259 + let exists = (existingBorder != nil)
260 + if !exists {
261 + layer.addSublayer(border)
262 + }
263 + }
264 + private func gradientBorderLayer() -> CAGradientLayer? {
265 + let borderLayers = layer.sublayers?.filter { return $0.name == UIView.kLayerNameGradientBorder }
266 + if borderLayers?.count ?? 0 > 1 {
267 + fatalError()
268 + }
269 + return borderLayers?.first as? CAGradientLayer
270 + }
271 +}
272 +
273 +public extension CGPoint {
274 +
275 + enum CoordinateSide {
276 + case topLeft, top, topRight, right, bottomRight, bottom, bottomLeft, left
277 + }
278 +
279 + static func unitCoordinate(_ side: CoordinateSide) -> CGPoint {
280 + switch side {
281 + case .topLeft: return CGPoint(x: 0.0, y: 0.0)
282 + case .top: return CGPoint(x: 0.5, y: 0.0)
283 + case .topRight: return CGPoint(x: 1.0, y: 0.0)
284 + case .right: return CGPoint(x: 0.0, y: 0.5)
285 + case .bottomRight: return CGPoint(x: 1.0, y: 1.0)
286 + case .bottom: return CGPoint(x: 0.5, y: 1.0)
287 + case .bottomLeft: return CGPoint(x: 0.0, y: 1.0)
288 + case .left: return CGPoint(x: 1.0, y: 0.5)
289 + }
290 + }
291 +}
......