Browse Source

added datepicker view

pull/1/head
gme_2 6 years ago
parent
commit
b8e0ac1081
  1. 8
      GMERemittance.xcodeproj/project.pbxproj
  2. BIN
      GMERemittance/.DS_Store
  3. BIN
      GMERemittance/Assets.xcassets/.DS_Store
  4. 5
      GMERemittance/Module/SplashScreen/User Interface/View/SplashScreenViewController.swift
  5. 71
      GMERemittance/Module/TransactionHistory/User Interface/View/DatePickerViewController.swift
  6. 154
      GMERemittance/Module/TransactionHistory/User Interface/View/TransactionHistoryDatePicker.storyboard
  7. 2
      GMERemittance/Module/TransactionHistory/User Interface/View/TransactionHistoryViewController.swift

8
GMERemittance.xcodeproj/project.pbxproj

@ -458,6 +458,8 @@
D99D72AA212D595B00601F48 /* CountryInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D99D72A9212D595B00601F48 /* CountryInfo.swift */; };
D9B39677214F7DDC0072A9B8 /* ImageCroper.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B39675214F7DDC0072A9B8 /* ImageCroper.swift */; };
D9B39678214F7DDC0072A9B8 /* MultiMediaManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B39676214F7DDC0072A9B8 /* MultiMediaManager.swift */; };
D9B414402161AD2000A53D9D /* TransactionHistoryDatePicker.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D9B4143F2161AD2000A53D9D /* TransactionHistoryDatePicker.storyboard */; };
D9B414422161AE2800A53D9D /* DatePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B414412161AE2800A53D9D /* DatePickerViewController.swift */; };
D9B7ADF02130048E009B0564 /* ExchangeRatesModuleInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B7ADDD2130048E009B0564 /* ExchangeRatesModuleInterface.swift */; };
D9B7ADF12130048E009B0564 /* ExchangeRatesService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B7ADE02130048E009B0564 /* ExchangeRatesService.swift */; };
D9B7ADF22130048E009B0564 /* ExchangeRatesServiceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B7ADE12130048E009B0564 /* ExchangeRatesServiceType.swift */; };
@ -978,6 +980,8 @@
D99D72A9212D595B00601F48 /* CountryInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CountryInfo.swift; sourceTree = "<group>"; };
D9B39675214F7DDC0072A9B8 /* ImageCroper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageCroper.swift; sourceTree = "<group>"; };
D9B39676214F7DDC0072A9B8 /* MultiMediaManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultiMediaManager.swift; sourceTree = "<group>"; };
D9B4143F2161AD2000A53D9D /* TransactionHistoryDatePicker.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = TransactionHistoryDatePicker.storyboard; sourceTree = "<group>"; };
D9B414412161AE2800A53D9D /* DatePickerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePickerViewController.swift; sourceTree = "<group>"; };
D9B7ADDD2130048E009B0564 /* ExchangeRatesModuleInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExchangeRatesModuleInterface.swift; sourceTree = "<group>"; };
D9B7ADE02130048E009B0564 /* ExchangeRatesService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExchangeRatesService.swift; sourceTree = "<group>"; };
D9B7ADE12130048E009B0564 /* ExchangeRatesServiceType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExchangeRatesServiceType.swift; sourceTree = "<group>"; };
@ -3289,6 +3293,8 @@
D977859A215DC55E00754079 /* TransactionHistory.storyboard */,
D977859B215DC55E00754079 /* TransactionHistoryViewController.swift */,
D977859C215DC55E00754079 /* TransactionHistoryViewInterface.swift */,
D9B4143F2161AD2000A53D9D /* TransactionHistoryDatePicker.storyboard */,
D9B414412161AE2800A53D9D /* DatePickerViewController.swift */,
);
path = View;
sourceTree = "<group>";
@ -3599,6 +3605,7 @@
049B6ED0203ADCF3003D6F62 /* gme-logo.png in Resources */,
040C814A20626A7D00989076 /* Reward.storyboard in Resources */,
5565FF201FE275E5002934E9 /* SanFranciscoDisplay-Ultralight.otf in Resources */,
D9B414402161AD2000A53D9D /* TransactionHistoryDatePicker.storyboard in Resources */,
5565FF2F1FE275E5002934E9 /* SanFranciscoDisplay-Thin.otf in Resources */,
5565FF1D1FE275E5002934E9 /* SanFranciscoDisplay-Heavy.otf in Resources */,
5565FF2A1FE275E5002934E9 /* SanFranciscoDisplay-Bold.otf in Resources */,
@ -3964,6 +3971,7 @@
D945F125213E1D5100A24824 /* SendMoneyReceiptViewInterface.swift in Sources */,
04BEF55E205948E8007713F9 /* RewardViewModel.swift in Sources */,
D92B80262140C3CB00A25B26 /* MainService.swift in Sources */,
D9B414422161AE2800A53D9D /* DatePickerViewController.swift in Sources */,
0428DC682048FF91008355D7 /* WalletTransactionTableViewCell.swift in Sources */,
9F23DF512074A02B0025D6DF /* MyCollectionViewCell.swift in Sources */,
A28D38F0202D49C90012EF6A /* TransactionSearchViewController.swift in Sources */,

BIN
GMERemittance/.DS_Store

BIN
GMERemittance/Assets.xcassets/.DS_Store

5
GMERemittance/Module/SplashScreen/User Interface/View/SplashScreenViewController.swift

@ -77,7 +77,7 @@ class SplashScreenViewController: UIViewController {
// MARK: Other Functions
private func hideNavBar() {
self.navigationController?.isNavigationBarHidden = false
self.navigationController?.isNavigationBarHidden = true
self.navigationController?.navigationBar.barTintColor = UIColor.init(hex: "ED1C24")
self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
@ -97,7 +97,7 @@ class SplashScreenViewController: UIViewController {
view.addGestureRecognizer(leftSwipe)
view.addGestureRecognizer(rightSwipe)
Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(_SplashScreenViewController.updateImage), userInfo: nil, repeats: true)
// Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(_SplashScreenViewController.updateImage), userInfo: nil, repeats: true)
}
@objc func handleSwipes(_ sender: UISwipeGestureRecognizer) {
@ -133,7 +133,6 @@ class SplashScreenViewController: UIViewController {
switch counter {
case 0:
imageViewDotLeft.image = imageDotSelected
imageViewHomeLogo.image = imageFirst
labelHomeDescription.text = descriptionFirst

71
GMERemittance/Module/TransactionHistory/User Interface/View/DatePickerViewController.swift

@ -0,0 +1,71 @@
//
// DatePickerViewController.swift
// GMERemittance
//
// Created by gme_2 on 01/10/2018.
// Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class DatePickerViewController: UIViewController {
@IBOutlet weak var fromTextfield: UITextField!
@IBOutlet weak var toTextfield: UITextField!
var completion: ((_ from: Date?, _ to: Date?) -> ())?
var fromDate: Date?
var toDate: Date?
let fromDatePicker = UIDatePicker()
let toDatePicker = UIDatePicker()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
// IBActions
@IBAction func cancel(_ sender: Any) {
self.dismiss(animated: true, completion: nil)
}
@IBAction func searcg(_ sender: UIButton) {
self.dismiss(animated: true, completion: {
self.completion?(self.fromDate, self.toDate)
})
}
// private functions
private func setupFromDatePicker() {
self.fromDatePicker.datePickerMode = .date
self.fromTextfield.inputView = fromDatePicker
fromDatePicker.maximumDate = Date()
self.fromDatePicker.addTarget(self, action: #selector(handleFromDatePicker(sender:)), for: .valueChanged)
}
@objc private func handleFromDatePicker(sender: UIDatePicker) {
self.fromDate = sender.date
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = AppConstants.dateFormat
self.fromTextfield.text = dateFormatter.string(from: sender.date)
}
private func setupToDatePicker() {
self.toDatePicker.datePickerMode = .date
self.toTextfield.inputView = toDatePicker
toDatePicker.maximumDate = Date()
self.toDatePicker.addTarget(self, action: #selector(handleToDatePicker(sender:)), for: .valueChanged)
}
@objc private func handleToDatePicker(sender: UIDatePicker) {
self.toDate = sender.date
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = AppConstants.dateFormat
self.toTextfield.text = dateFormatter.string(from: sender.date)
}
}

154
GMERemittance/Module/TransactionHistory/User Interface/View/TransactionHistoryDatePicker.storyboard

@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<customFonts key="customFonts">
<array key="SanFranciscoText-Regular.otf">
<string>SanFranciscoText-Regular</string>
</array>
</customFonts>
<scenes>
<!--Date Picker View Controller-->
<scene sceneID="iYG-BI-6pQ">
<objects>
<viewController storyboardIdentifier="DatePickerViewController" modalTransitionStyle="crossDissolve" modalPresentationStyle="overCurrentContext" id="d6i-cC-L4t" customClass="DatePickerViewController" customModule="GMERemittance" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="bQE-Xw-KV7">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ULD-Eu-tB1">
<rect key="frame" x="16" y="212" width="343" height="243"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="From" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="egs-MP-XU0">
<rect key="frame" x="16" y="25" width="33" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Select start date" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="pCR-cq-obj">
<rect key="frame" x="16" y="53" width="308" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="Dk4-ZC-Ey4"/>
</constraints>
<color key="textColor" white="0.75" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<textInputTraits key="textInputTraits"/>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="To" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8R4-ao-hRh">
<rect key="frame" x="16" y="107" width="15.5" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Select end date" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="I48-21-OzR">
<rect key="frame" x="16" y="135" width="308" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="3EU-b3-51N"/>
</constraints>
<color key="textColor" white="0.75" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<textInputTraits key="textInputTraits"/>
</textField>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nPo-RO-gkQ">
<rect key="frame" x="0.0" y="200" width="343" height="1"/>
<color key="backgroundColor" red="0.7843137255" green="0.78039215689999997" blue="0.80000000000000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="e5f-OB-PCo"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aSy-Xt-xYB">
<rect key="frame" x="0.0" y="201" width="343" height="42"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="bCn-Ov-est">
<rect key="frame" x="0.0" y="0.0" width="343" height="42"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="d6F-Zw-V5J">
<rect key="frame" x="0.0" y="0.0" width="171" height="42"/>
<color key="backgroundColor" red="0.90980392160000001" green="0.90980392160000001" blue="0.90980392160000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="17"/>
<state key="normal" title="Cancel">
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<connections>
<action selector="cancel:" destination="d6i-cC-L4t" eventType="touchUpInside" id="k5O-nR-fMk"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rgV-Oy-aLC">
<rect key="frame" x="172" y="0.0" width="171" height="42"/>
<color key="backgroundColor" red="0.90980392160000001" green="0.90980392160000001" blue="0.90980392160000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="17"/>
<state key="normal" title="Search">
<color key="titleColor" red="0.92549019610000005" green="0.10980392160000001" blue="0.14117647059999999" alpha="0.90000000000000002" colorSpace="calibratedRGB"/>
</state>
<connections>
<action selector="searcg:" destination="d6i-cC-L4t" eventType="touchUpInside" id="Dj2-nZ-Hs4"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" red="0.90980392160000001" green="0.2705078125" blue="0.90980392160000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</stackView>
</subviews>
<color key="backgroundColor" red="0.7843137255" green="0.78039215689999997" blue="0.80000000000000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="bCn-Ov-est" secondAttribute="bottom" id="0Sh-Ug-bQu"/>
<constraint firstItem="bCn-Ov-est" firstAttribute="leading" secondItem="aSy-Xt-xYB" secondAttribute="leading" id="5yT-pJ-H5B"/>
<constraint firstAttribute="trailing" secondItem="bCn-Ov-est" secondAttribute="trailing" id="RBp-Nm-PWi"/>
<constraint firstItem="bCn-Ov-est" firstAttribute="top" secondItem="aSy-Xt-xYB" secondAttribute="top" id="Zjm-uS-Jfa"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" red="0.90980392160000001" green="0.90980392160000001" blue="0.90980392160000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="8R4-ao-hRh" firstAttribute="leading" secondItem="ULD-Eu-tB1" secondAttribute="leading" constant="16" id="0LV-ar-87s"/>
<constraint firstItem="8R4-ao-hRh" firstAttribute="top" secondItem="pCR-cq-obj" secondAttribute="bottom" constant="11" id="0oF-Hk-lvr"/>
<constraint firstAttribute="trailing" secondItem="pCR-cq-obj" secondAttribute="trailing" constant="19" id="413-CZ-J8T"/>
<constraint firstAttribute="trailing" secondItem="nPo-RO-gkQ" secondAttribute="trailing" id="AFU-Hr-KmU"/>
<constraint firstAttribute="bottom" secondItem="aSy-Xt-xYB" secondAttribute="bottom" id="BTL-N4-Ozp"/>
<constraint firstItem="pCR-cq-obj" firstAttribute="leading" secondItem="ULD-Eu-tB1" secondAttribute="leading" constant="16" id="Eac-MA-GgN"/>
<constraint firstAttribute="trailing" secondItem="I48-21-OzR" secondAttribute="trailing" constant="19" id="FpV-8q-7uU"/>
<constraint firstItem="I48-21-OzR" firstAttribute="leading" secondItem="ULD-Eu-tB1" secondAttribute="leading" constant="16" id="KmQ-gF-QZu"/>
<constraint firstItem="aSy-Xt-xYB" firstAttribute="leading" secondItem="ULD-Eu-tB1" secondAttribute="leading" id="LVI-hw-VsL"/>
<constraint firstItem="egs-MP-XU0" firstAttribute="top" secondItem="ULD-Eu-tB1" secondAttribute="top" constant="25" id="OH4-Ni-ZY1"/>
<constraint firstItem="I48-21-OzR" firstAttribute="top" secondItem="8R4-ao-hRh" secondAttribute="bottom" constant="11" id="QPH-PK-huz"/>
<constraint firstItem="nPo-RO-gkQ" firstAttribute="leading" secondItem="ULD-Eu-tB1" secondAttribute="leading" id="SH3-Wr-k5R"/>
<constraint firstAttribute="height" constant="243" id="USC-vh-uuz"/>
<constraint firstItem="egs-MP-XU0" firstAttribute="leading" secondItem="ULD-Eu-tB1" secondAttribute="leading" constant="16" id="Z4f-ia-o2g"/>
<constraint firstItem="pCR-cq-obj" firstAttribute="top" secondItem="egs-MP-XU0" secondAttribute="bottom" constant="11" id="bl6-pu-TZF"/>
<constraint firstItem="aSy-Xt-xYB" firstAttribute="top" secondItem="nPo-RO-gkQ" secondAttribute="bottom" id="kXh-ad-lTJ"/>
<constraint firstAttribute="trailing" secondItem="aSy-Xt-xYB" secondAttribute="trailing" id="mQH-fh-PdD"/>
<constraint firstItem="nPo-RO-gkQ" firstAttribute="top" secondItem="I48-21-OzR" secondAttribute="bottom" constant="22" id="n5T-gB-JvY"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="10"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
</subviews>
<color key="backgroundColor" white="0.29024367559523806" alpha="0.55325704225352113" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<gestureRecognizers/>
<constraints>
<constraint firstItem="ULD-Eu-tB1" firstAttribute="centerY" secondItem="bQE-Xw-KV7" secondAttribute="centerY" id="K3C-Xo-Dj4"/>
<constraint firstItem="OTz-yN-Foh" firstAttribute="trailing" secondItem="ULD-Eu-tB1" secondAttribute="trailing" constant="16" id="WWg-39-nhB"/>
<constraint firstItem="ULD-Eu-tB1" firstAttribute="leading" secondItem="OTz-yN-Foh" secondAttribute="leading" constant="16" id="zgz-ev-N5r"/>
</constraints>
<viewLayoutGuide key="safeArea" id="OTz-yN-Foh"/>
</view>
<connections>
<outlet property="fromTextfield" destination="pCR-cq-obj" id="rgN-1c-pJb"/>
<outlet property="toTextfield" destination="I48-21-OzR" id="nBT-06-403"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="FmM-Wk-2zF" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="7265" y="-236"/>
</scene>
</scenes>
</document>

2
GMERemittance/Module/TransactionHistory/User Interface/View/TransactionHistoryViewController.swift

@ -71,6 +71,8 @@ class TransactionHistoryViewController: UIViewController {
// MARK: IBActions
@IBAction func openSearchFilter(_ sender: UIButton) {
// open search filter
let viewController = UIStoryboard.init(name: "TransactionHistoryDatePicker", bundle: nil).instantiateViewController(withIdentifier: "DatePickerViewController") as! DatePickerViewController
self.present(viewController, animated: true, completion: nil)
}
@IBAction func segmentChanged(_ sender: UISegmentedControl) {

Loading…
Cancel
Save