Manos Chorianopoulos

fix top gradient border line

...@@ -17,6 +17,7 @@ import UIKit ...@@ -17,6 +17,7 @@ import UIKit
17 @IBOutlet weak var nameLabel: UILabel! 17 @IBOutlet weak var nameLabel: UILabel!
18 @IBOutlet weak var descriptionLabel: UILabel! 18 @IBOutlet weak var descriptionLabel: UILabel!
19 @IBOutlet weak var redeemButton: UIButton! 19 @IBOutlet weak var redeemButton: UIButton!
20 + @IBOutlet weak var topBorderLine: UIImageView!
20 21
21 public var ccms: swiftApi.LoyaltyContextualOfferModel? 22 public var ccms: swiftApi.LoyaltyContextualOfferModel?
22 23
...@@ -41,9 +42,22 @@ import UIKit ...@@ -41,9 +42,22 @@ import UIKit
41 42
42 backgroundImage.image = UIImage(named: "coupons_scrollview_white", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil) 43 backgroundImage.image = UIImage(named: "coupons_scrollview_white", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)
43 44
44 - scrollView.clipsToBounds = true 45 +// scrollView.clipsToBounds = true
45 - scrollView.layer.cornerRadius = 30 46 +// scrollView.layer.cornerRadius = 30
46 - scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius 47 +// scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius
48 +
49 + let image = UIImage(named: "top_border_line", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)!
50 + var aspectR: CGFloat = 0.0
51 +
52 + aspectR = image.size.width/image.size.height
53 +
54 + topBorderLine.translatesAutoresizingMaskIntoConstraints = false
55 + topBorderLine.image = image
56 + topBorderLine.contentMode = .scaleAspectFit
57 +
58 + NSLayoutConstraint.activate([
59 + topBorderLine.heightAnchor.constraint(equalTo: topBorderLine.widthAnchor, multiplier: 1/aspectR)
60 + ])
47 61
48 couponImage.load(link: ccms?._imageUrl ?? "", placeholder: UIImage(), cache: URLCache()) 62 couponImage.load(link: ccms?._imageUrl ?? "", placeholder: UIImage(), cache: URLCache())
49 couponImage.contentMode = .scaleAspectFill 63 couponImage.contentMode = .scaleAspectFill
......
...@@ -37,6 +37,7 @@ import AVFoundation ...@@ -37,6 +37,7 @@ import AVFoundation
37 @IBOutlet weak var barcodeLabelTopSpace: NSLayoutConstraint! 37 @IBOutlet weak var barcodeLabelTopSpace: NSLayoutConstraint!
38 @IBOutlet weak var border2TopSpace: NSLayoutConstraint! 38 @IBOutlet weak var border2TopSpace: NSLayoutConstraint!
39 @IBOutlet weak var mapButton: UIButton! 39 @IBOutlet weak var mapButton: UIButton!
40 + @IBOutlet weak var topBorderLine: UIImageView!
40 41
41 let uiscreen: CGRect = UIScreen.main.bounds 42 let uiscreen: CGRect = UIScreen.main.bounds
42 43
...@@ -57,9 +58,22 @@ import AVFoundation ...@@ -57,9 +58,22 @@ import AVFoundation
57 58
58 backgroundImage.image = UIImage(named: "coupons_scrollview_white", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil) 59 backgroundImage.image = UIImage(named: "coupons_scrollview_white", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)
59 60
60 - scrollView.clipsToBounds = true 61 +// scrollView.clipsToBounds = true
61 - scrollView.layer.cornerRadius = 30 62 +// scrollView.layer.cornerRadius = 30
62 - scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius 63 +// scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius
64 +
65 + let image = UIImage(named: "top_border_line", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)!
66 + var aspectR: CGFloat = 0.0
67 +
68 + aspectR = image.size.width/image.size.height
69 +
70 + topBorderLine.translatesAutoresizingMaskIntoConstraints = false
71 + topBorderLine.image = image
72 + topBorderLine.contentMode = .scaleAspectFit
73 +
74 + NSLayoutConstraint.activate([
75 + topBorderLine.heightAnchor.constraint(equalTo: topBorderLine.widthAnchor, multiplier: 1/aspectR)
76 + ])
63 77
64 // COUPONSET: desc, img_preview, name, terms 78 // COUPONSET: desc, img_preview, name, terms
65 // COUPON: coupon, expiration, discount, status 79 // COUPON: coupon, expiration, discount, status
......
...@@ -21,7 +21,8 @@ import SwiftEventBus ...@@ -21,7 +21,8 @@ import SwiftEventBus
21 @IBOutlet weak var termsButton: UIButton! 21 @IBOutlet weak var termsButton: UIButton!
22 @IBOutlet weak var termsTextView: UITextView! 22 @IBOutlet weak var termsTextView: UITextView!
23 @IBOutlet weak var termsTextViewHeight: NSLayoutConstraint! 23 @IBOutlet weak var termsTextViewHeight: NSLayoutConstraint!
24 - 24 + @IBOutlet weak var topBorderLine: UIImageView!
25 +
25 public var ccms: swiftApi.LoyaltyContextualOfferModel? 26 public var ccms: swiftApi.LoyaltyContextualOfferModel?
26 public var profile:swiftApi.ProfileModel? = swiftApi().getConsumer() 27 public var profile:swiftApi.ProfileModel? = swiftApi().getConsumer()
27 28
...@@ -48,9 +49,22 @@ import SwiftEventBus ...@@ -48,9 +49,22 @@ import SwiftEventBus
48 49
49 backgroundImage.image = UIImage(named: "coupons_scrollview_white", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil) 50 backgroundImage.image = UIImage(named: "coupons_scrollview_white", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)
50 51
51 - scrollView.clipsToBounds = true 52 +// scrollView.clipsToBounds = true
52 - scrollView.layer.cornerRadius = 30 53 +// scrollView.layer.cornerRadius = 30
53 - scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius 54 +// scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius
55 +
56 + let image = UIImage(named: "top_border_line", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)!
57 + var aspectR: CGFloat = 0.0
58 +
59 + aspectR = image.size.width/image.size.height
60 +
61 + topBorderLine.translatesAutoresizingMaskIntoConstraints = false
62 + topBorderLine.image = image
63 + topBorderLine.contentMode = .scaleAspectFit
64 +
65 + NSLayoutConstraint.activate([
66 + topBorderLine.heightAnchor.constraint(equalTo: topBorderLine.widthAnchor, multiplier: 1/aspectR)
67 + ])
54 68
55 couponImage.load(link: couponset?.img_preview ?? "", placeholder: UIImage(), cache: URLCache()) 69 couponImage.load(link: couponset?.img_preview ?? "", placeholder: UIImage(), cache: URLCache())
56 couponImage.contentMode = .scaleAspectFill 70 couponImage.contentMode = .scaleAspectFill
......
...@@ -22,6 +22,7 @@ import MapKit ...@@ -22,6 +22,7 @@ import MapKit
22 @IBOutlet private var addressView: UILabel! 22 @IBOutlet private var addressView: UILabel!
23 @IBOutlet private var directionsButton: CSMButton! 23 @IBOutlet private var directionsButton: CSMButton!
24 @IBOutlet private var infoTopConstraint: NSLayoutConstraint! 24 @IBOutlet private var infoTopConstraint: NSLayoutConstraint!
25 + @IBOutlet weak var topBorderLine: UIImageView!
25 26
26 // public 27 // public
27 public var couponSet: swiftApi.CouponSetItemModel? 28 public var couponSet: swiftApi.CouponSetItemModel?
...@@ -48,9 +49,22 @@ import MapKit ...@@ -48,9 +49,22 @@ import MapKit
48 mapView.delegate = self 49 mapView.delegate = self
49 mapView.centerToLocation(initialLocation, regionRadius: 1000000) 50 mapView.centerToLocation(initialLocation, regionRadius: 1000000)
50 51
51 - mapView.clipsToBounds = true 52 +// mapView.clipsToBounds = true
52 - mapView.layer.cornerRadius = 30 53 +// mapView.layer.cornerRadius = 30
53 - mapView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius 54 +// mapView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius
55 +
56 + let image = UIImage(named: "top_border_line", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)!
57 + var aspectR: CGFloat = 0.0
58 +
59 + aspectR = image.size.width/image.size.height
60 +
61 + topBorderLine.translatesAutoresizingMaskIntoConstraints = false
62 + topBorderLine.image = image
63 + topBorderLine.contentMode = .scaleAspectFit
64 +
65 + NSLayoutConstraint.activate([
66 + topBorderLine.heightAnchor.constraint(equalTo: topBorderLine.widthAnchor, multiplier: 1/aspectR)
67 + ])
54 68
55 69
56 closeButton.imageView?.layer.transform = CATransform3DMakeScale(1.5, 1.5, 1.5) 70 closeButton.imageView?.layer.transform = CATransform3DMakeScale(1.5, 1.5, 1.5)
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
22 <outlet property="nameView" destination="MsK-eg-pkk" id="60t-lm-O8m"/> 22 <outlet property="nameView" destination="MsK-eg-pkk" id="60t-lm-O8m"/>
23 <outlet property="phoneView" destination="knh-D9-CuM" id="ES2-6e-vRx"/> 23 <outlet property="phoneView" destination="knh-D9-CuM" id="ES2-6e-vRx"/>
24 <outlet property="titleView" destination="oVh-dv-f7a" id="dst-Ku-EFw"/> 24 <outlet property="titleView" destination="oVh-dv-f7a" id="dst-Ku-EFw"/>
25 + <outlet property="topBorderLine" destination="Z8H-fT-Lo9" id="Vl0-Nb-YhC"/>
25 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 26 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
26 </connections> 27 </connections>
27 </placeholder> 28 </placeholder>
...@@ -37,20 +38,31 @@ ...@@ -37,20 +38,31 @@
37 <rect key="frame" x="0.0" y="0.0" width="414" height="852"/> 38 <rect key="frame" x="0.0" y="0.0" width="414" height="852"/>
38 </imageView> 39 </imageView>
39 <mapView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" mapType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="F1c-ck-cQa"> 40 <mapView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" mapType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="F1c-ck-cQa">
40 - <rect key="frame" x="0.0" y="2" width="414" height="850"/> 41 + <rect key="frame" x="0.0" y="0.0" width="414" height="852"/>
41 </mapView> 42 </mapView>
43 + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Z8H-fT-Lo9">
44 + <rect key="frame" x="0.0" y="420" width="414" height="11.5"/>
45 + </imageView>
42 </subviews> 46 </subviews>
43 <color key="backgroundColor" systemColor="systemBackgroundColor"/> 47 <color key="backgroundColor" systemColor="systemBackgroundColor"/>
44 <constraints> 48 <constraints>
45 <constraint firstAttribute="bottom" secondItem="tVJ-fk-ani" secondAttribute="bottom" id="5cR-5W-AwC"/> 49 <constraint firstAttribute="bottom" secondItem="tVJ-fk-ani" secondAttribute="bottom" id="5cR-5W-AwC"/>
46 <constraint firstItem="tVJ-fk-ani" firstAttribute="top" secondItem="rKl-bF-Zpf" secondAttribute="top" id="EMb-Ay-M18"/> 50 <constraint firstItem="tVJ-fk-ani" firstAttribute="top" secondItem="rKl-bF-Zpf" secondAttribute="top" id="EMb-Ay-M18"/>
51 + <constraint firstItem="Z8H-fT-Lo9" firstAttribute="leading" secondItem="rKl-bF-Zpf" secondAttribute="leading" id="Kwp-fj-9nx"/>
47 <constraint firstAttribute="trailing" secondItem="tVJ-fk-ani" secondAttribute="trailing" id="LLM-SY-Ejo"/> 52 <constraint firstAttribute="trailing" secondItem="tVJ-fk-ani" secondAttribute="trailing" id="LLM-SY-Ejo"/>
48 <constraint firstItem="F1c-ck-cQa" firstAttribute="leading" secondItem="rKl-bF-Zpf" secondAttribute="leading" id="P7b-Km-FIn"/> 53 <constraint firstItem="F1c-ck-cQa" firstAttribute="leading" secondItem="rKl-bF-Zpf" secondAttribute="leading" id="P7b-Km-FIn"/>
49 - <constraint firstItem="F1c-ck-cQa" firstAttribute="top" secondItem="rKl-bF-Zpf" secondAttribute="top" constant="2" id="X2Z-Vc-V9u"/> 54 + <constraint firstItem="Z8H-fT-Lo9" firstAttribute="top" secondItem="rKl-bF-Zpf" secondAttribute="top" id="VAV-Go-hI2"/>
55 + <constraint firstItem="F1c-ck-cQa" firstAttribute="top" secondItem="rKl-bF-Zpf" secondAttribute="top" id="X2Z-Vc-V9u"/>
50 <constraint firstAttribute="trailing" secondItem="F1c-ck-cQa" secondAttribute="trailing" id="dcT-Pn-T5v"/> 56 <constraint firstAttribute="trailing" secondItem="F1c-ck-cQa" secondAttribute="trailing" id="dcT-Pn-T5v"/>
51 <constraint firstItem="tVJ-fk-ani" firstAttribute="leading" secondItem="rKl-bF-Zpf" secondAttribute="leading" id="eVM-4A-gJc"/> 57 <constraint firstItem="tVJ-fk-ani" firstAttribute="leading" secondItem="rKl-bF-Zpf" secondAttribute="leading" id="eVM-4A-gJc"/>
52 <constraint firstAttribute="bottom" secondItem="F1c-ck-cQa" secondAttribute="bottom" id="ipi-oy-9jV"/> 58 <constraint firstAttribute="bottom" secondItem="F1c-ck-cQa" secondAttribute="bottom" id="ipi-oy-9jV"/>
59 + <constraint firstAttribute="trailing" secondItem="Z8H-fT-Lo9" secondAttribute="trailing" id="nUU-tN-OvE"/>
53 </constraints> 60 </constraints>
61 + <variation key="default">
62 + <mask key="subviews">
63 + <exclude reference="tVJ-fk-ani"/>
64 + </mask>
65 + </variation>
54 </view> 66 </view>
55 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zc1-ew-qcl"> 67 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zc1-ew-qcl">
56 <rect key="frame" x="0.0" y="576" width="414" height="320"/> 68 <rect key="frame" x="0.0" y="576" width="414" height="320"/>
......
...@@ -23,6 +23,7 @@ import SwiftEventBus ...@@ -23,6 +23,7 @@ import SwiftEventBus
23 @IBOutlet weak var senderButton: UIButton! 23 @IBOutlet weak var senderButton: UIButton!
24 @IBOutlet weak var numberTextField: UITextField! 24 @IBOutlet weak var numberTextField: UITextField!
25 @IBOutlet weak var redeemButton: UIButton! 25 @IBOutlet weak var redeemButton: UIButton!
26 + @IBOutlet weak var topBorderLine: UIImageView!
26 27
27 let uiscreen: CGRect = UIScreen.main.bounds 28 let uiscreen: CGRect = UIScreen.main.bounds
28 29
...@@ -52,9 +53,22 @@ import SwiftEventBus ...@@ -52,9 +53,22 @@ import SwiftEventBus
52 53
53 backgroundImage.image = UIImage(named: "coupons_scrollview_white", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil) 54 backgroundImage.image = UIImage(named: "coupons_scrollview_white", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)
54 55
55 - scrollView.clipsToBounds = true 56 +// scrollView.clipsToBounds = true
56 - scrollView.layer.cornerRadius = 30 57 +// scrollView.layer.cornerRadius = 30
57 - scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius 58 +// scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius
59 +
60 + let image = UIImage(named: "top_border_line", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)!
61 + var aspectR: CGFloat = 0.0
62 +
63 + aspectR = image.size.width/image.size.height
64 +
65 + topBorderLine.translatesAutoresizingMaskIntoConstraints = false
66 + topBorderLine.image = image
67 + topBorderLine.contentMode = .scaleAspectFit
68 +
69 + NSLayoutConstraint.activate([
70 + topBorderLine.heightAnchor.constraint(equalTo: topBorderLine.widthAnchor, multiplier: 1/aspectR)
71 + ])
58 72
59 // COUPONSET: desc, img_preview, name, terms 73 // COUPONSET: desc, img_preview, name, terms
60 // COUPON: coupon, expiration, discount, status 74 // COUPON: coupon, expiration, discount, status
......
...@@ -26,6 +26,7 @@ import UIKit ...@@ -26,6 +26,7 @@ import UIKit
26 @IBOutlet weak var moreButton: UIButton! 26 @IBOutlet weak var moreButton: UIButton!
27 @IBOutlet weak var moreTextView: UITextView! 27 @IBOutlet weak var moreTextView: UITextView!
28 @IBOutlet weak var moreTextViewHeight: NSLayoutConstraint! 28 @IBOutlet weak var moreTextViewHeight: NSLayoutConstraint!
29 + @IBOutlet weak var topBorderLine: UIImageView!
29 30
30 let uiscreen: CGRect = UIScreen.main.bounds 31 let uiscreen: CGRect = UIScreen.main.bounds
31 32
...@@ -52,9 +53,22 @@ import UIKit ...@@ -52,9 +53,22 @@ import UIKit
52 53
53 backgroundImage.image = UIImage(named: "coupons_scrollview_white", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil) 54 backgroundImage.image = UIImage(named: "coupons_scrollview_white", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)
54 55
55 - scrollView.clipsToBounds = true 56 + let image = UIImage(named: "top_border_line", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil)!
56 - scrollView.layer.cornerRadius = 30 57 + var aspectR: CGFloat = 0.0
57 - scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius 58 +
59 + aspectR = image.size.width/image.size.height
60 +
61 + topBorderLine.translatesAutoresizingMaskIntoConstraints = false
62 + topBorderLine.image = image
63 + topBorderLine.contentMode = .scaleAspectFit
64 +
65 + NSLayoutConstraint.activate([
66 + topBorderLine.heightAnchor.constraint(equalTo: topBorderLine.widthAnchor, multiplier: 1/aspectR)
67 + ])
68 +
69 +// scrollView.clipsToBounds = true
70 +// scrollView.layer.cornerRadius = 30
71 +// scrollView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius
58 72
59 heroImage.load(link: ccms?._imageOfferUrl ?? "", placeholder: UIImage(), cache: URLCache()) 73 heroImage.load(link: ccms?._imageOfferUrl ?? "", placeholder: UIImage(), cache: URLCache())
60 heroImage.contentMode = .scaleAspectFill 74 heroImage.contentMode = .scaleAspectFill
......