Added formula features like scrolling and walk through textfields

This commit is contained in:
Raimund Wege
2017-08-08 09:57:07 +02:00
parent c6de994841
commit 5c09261d07
6 changed files with 179 additions and 20 deletions
@@ -351,6 +351,7 @@
C8BFCCC41D51C53500FC1A27 /* TeamData.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BFCCC31D51C53500FC1A27 /* TeamData.swift */; };
C8BFCCCC1D523C5D00FC1A27 /* TitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BFCCCB1D523C5D00FC1A27 /* TitleView.swift */; };
C8D5E81D1D479FA800DA0D61 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C8D5E81C1D479FA800DA0D61 /* Main.storyboard */; };
C8E0BD0A1F39A08B002FCCA5 /* FormularViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8E0BD091F39A08B002FCCA5 /* FormularViewController.swift */; };
C8F1B1E11D488B6D004C3379 /* Translation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8F1B1E01D488B6D004C3379 /* Translation.swift */; };
C8F71EDA1D8691F700826DE4 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = C8F71EA61D8691F700826DE4 /* AFHTTPRequestOperation.m */; };
C8F71EDB1D8691F700826DE4 /* AFHTTPRequestOperationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C8F71EA81D8691F700826DE4 /* AFHTTPRequestOperationManager.m */; };
@@ -741,6 +742,7 @@
C8BFCCCB1D523C5D00FC1A27 /* TitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TitleView.swift; sourceTree = "<group>"; };
C8D5E81C1D479FA800DA0D61 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = "<group>"; };
C8D938B11EB9AFDB00B1B4BC /* CoreData 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "CoreData 3.xcdatamodel"; sourceTree = "<group>"; };
C8E0BD091F39A08B002FCCA5 /* FormularViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormularViewController.swift; sourceTree = "<group>"; };
C8F1B1E01D488B6D004C3379 /* Translation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Translation.swift; sourceTree = "<group>"; };
C8F71EA51D8691F700826DE4 /* AFHTTPRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFHTTPRequestOperation.h; sourceTree = "<group>"; };
C8F71EA61D8691F700826DE4 /* AFHTTPRequestOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFHTTPRequestOperation.m; sourceTree = "<group>"; };
@@ -1251,6 +1253,7 @@
C85DB8271F31AAE0009559CE /* SignUpViewController.swift */,
C85DB8291F31AAFD009559CE /* LoginViewController.swift */,
C85DB82B1F31AB1A009559CE /* ForgotPasswordViewController.swift */,
C8E0BD091F39A08B002FCCA5 /* FormularViewController.swift */,
);
name = SignUp;
sourceTree = "<group>";
@@ -1952,6 +1955,7 @@
C8F71EE61D8691F700826DE4 /* SVProgressHUD.m in Sources */,
7F0658FF19F7EE910077FF95 /* CheckInData.swift in Sources */,
7F193A911A39E54600D71773 /* GPSAccuracyView.swift in Sources */,
C8E0BD0A1F39A08B002FCCA5 /* FormularViewController.swift in Sources */,
C8F71EE41D8691F700826DE4 /* SVProgressAnimatedView.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -14,7 +14,7 @@ protocol ForgotPasswordViewControllerDelegate {
}
class ForgotPasswordViewController: UIViewController {
class ForgotPasswordViewController: FormularViewController {
var signUpController: SignUpController?
@@ -27,6 +27,7 @@ class ForgotPasswordViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
textFields.append(contentsOf: [emailTextField, userNameTextField])
setup()
}
@@ -0,0 +1,88 @@
//
// FormularViewController.swift
// SAPTracker
//
// Created by Raimund Wege on 08.08.17.
// Copyright © 2017 com.sap.sailing. All rights reserved.
//
import UIKit
class FormularViewController: UIViewController {
var textFields: [UITextField] = []
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
subscribeForNotifications()
}
deinit {
unsubscribeFromNotifications()
}
// MARK: - Notifications
fileprivate func subscribeForNotifications() {
NotificationCenter.default.addObserver(
self,
selector: #selector(keyboardWillShowNotification(_:)),
name: .UIKeyboardWillShow,
object: nil
)
NotificationCenter.default.addObserver(
self,
selector: #selector(keyboardWillHideNotification(_:)),
name: .UIKeyboardWillHide,
object: nil
)
}
fileprivate func unsubscribeFromNotifications() {
NotificationCenter.default.removeObserver(self)
}
@objc fileprivate func keyboardWillShowNotification(_ notification: Notification) {
DispatchQueue.main.async(execute: {
if let keyboardSize = notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? CGRect {
let contentInsets = UIEdgeInsets(top: 0, left: 0, bottom: keyboardSize.height, right: 0)
self.scrollView.contentInset = contentInsets
self.scrollView.scrollIndicatorInsets = contentInsets
}
})
}
@objc fileprivate func keyboardWillHideNotification(_ notification: Notification) {
DispatchQueue.main.async(execute: {
let contentInsets = UIEdgeInsets.zero
self.scrollView.contentInset = contentInsets
self.scrollView.scrollIndicatorInsets = contentInsets
})
}
// MARK: - Actions
@IBAction func viewTapped(_ sender: Any) {
textFields.forEach { (textField) in
textField.resignFirstResponder()
}
}
}
// MARK: - UITextFieldDelegate
extension FormularViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if let nextResponder = textField.superview?.viewWithTag(textField.tag + 1) {
nextResponder.becomeFirstResponder()
} else {
textField.resignFirstResponder()
}
return false
}
}
@@ -14,7 +14,7 @@ protocol LoginViewControllerDelegate {
}
class LoginViewController: UIViewController {
class LoginViewController: FormularViewController {
var signUpController: SignUpController?
@@ -29,6 +29,7 @@ class LoginViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
textFields.append(contentsOf: [userNameTextField, passwordTextField])
setup()
}
@@ -45,7 +45,10 @@
<rect key="frame" x="16" y="38" width="343" height="30"/>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
<textInputTraits key="textInputTraits"/>
<textInputTraits key="textInputTraits" returnKeyType="continue"/>
<connections>
<outlet property="delegate" destination="qY9-7D-Xs4" id="A2D-0m-ZdZ"/>
</connections>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Password Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cAM-A4-6wu">
<rect key="frame" x="16" y="76" width="343" height="22"/>
@@ -53,11 +56,14 @@
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="2EU-Pr-nmo">
<textField opaque="NO" clipsSubviews="YES" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="2EU-Pr-nmo">
<rect key="frame" x="16" y="106" width="343" height="30"/>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/>
<textInputTraits key="textInputTraits" returnKeyType="done" secureTextEntry="YES"/>
<connections>
<outlet property="delegate" destination="qY9-7D-Xs4" id="A2H-jw-bqU"/>
</connections>
</textField>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IMI-8y-Fpj">
<rect key="frame" x="16" y="198" width="167.5" height="37"/>
@@ -141,6 +147,9 @@
<color key="value" red="0.87058823529999996" green="0.94509803920000002" blue="0.94509803920000002" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<outletCollection property="gestureRecognizers" destination="Cfc-lv-Ucn" appends="YES" id="wFU-cU-2Jg"/>
</connections>
</view>
<navigationItem key="navigationItem" id="YQF-mX-FKc">
<barButtonItem key="rightBarButtonItem" systemItem="cancel" id="Rcb-QK-7Kt">
@@ -154,12 +163,18 @@
<outlet property="loginButton" destination="goq-AQ-7ud" id="VPB-Aw-pr4"/>
<outlet property="passwordLabel" destination="cAM-A4-6wu" id="jHG-Gi-i8x"/>
<outlet property="passwordTextField" destination="2EU-Pr-nmo" id="I6i-WJ-4ed"/>
<outlet property="scrollView" destination="Q6f-ps-FeZ" id="kRT-XD-5nj"/>
<outlet property="signUpButton" destination="IMI-8y-Fpj" id="rpQ-sm-w2B"/>
<outlet property="userNameLabel" destination="rwV-FV-peQ" id="cms-I6-YUk"/>
<outlet property="userNameTextField" destination="8Yr-4B-QNb" id="PG3-gK-fSr"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="a7x-4f-wce" userLabel="First Responder" sceneMemberID="firstResponder"/>
<tapGestureRecognizer id="Cfc-lv-Ucn">
<connections>
<action selector="viewTapped:" destination="qY9-7D-Xs4" id="tT7-qb-2IB"/>
</connections>
</tapGestureRecognizer>
</objects>
<point key="canvasLocation" x="-838" y="-188"/>
</scene>
@@ -181,11 +196,14 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lOZ-p2-hq2" userLabel="Content View">
<rect key="frame" x="0.0" y="0.0" width="375" height="473"/>
<subviews>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="uyU-Dr-ejn">
<textField opaque="NO" clipsSubviews="YES" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="uyU-Dr-ejn">
<rect key="frame" x="16" y="106" width="343" height="30"/>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/>
<textInputTraits key="textInputTraits" returnKeyType="continue" secureTextEntry="YES"/>
<connections>
<outlet property="delegate" destination="Dwf-Hn-YUN" id="4nf-v9-ceh"/>
</connections>
</textField>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="54k-5G-O5L">
<rect key="frame" x="16" y="428" width="343" height="37"/>
@@ -208,7 +226,10 @@
<rect key="frame" x="16" y="38" width="343" height="30"/>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
<textInputTraits key="textInputTraits"/>
<textInputTraits key="textInputTraits" keyboardType="emailAddress" returnKeyType="continue"/>
<connections>
<outlet property="delegate" destination="Dwf-Hn-YUN" id="GsQ-rL-e2I"/>
</connections>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="User Name Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="e0x-oF-wfr">
<rect key="frame" x="16" y="76" width="343" height="22"/>
@@ -216,11 +237,14 @@
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="OSH-Yp-4lI">
<textField opaque="NO" clipsSubviews="YES" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="OSH-Yp-4lI">
<rect key="frame" x="16" y="174" width="343" height="30"/>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
<textInputTraits key="textInputTraits"/>
<textInputTraits key="textInputTraits" returnKeyType="continue"/>
<connections>
<outlet property="delegate" destination="Dwf-Hn-YUN" id="0Np-hm-IiX"/>
</connections>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Name Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gwJ-Rz-JWp">
<rect key="frame" x="16" y="144" width="343" height="22"/>
@@ -228,11 +252,14 @@
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="ApJ-P7-ynQ">
<textField opaque="NO" clipsSubviews="YES" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="ApJ-P7-ynQ">
<rect key="frame" x="16" y="242" width="343" height="30"/>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
<textInputTraits key="textInputTraits"/>
<textInputTraits key="textInputTraits" returnKeyType="continue"/>
<connections>
<outlet property="delegate" destination="Dwf-Hn-YUN" id="Vn3-PT-tWR"/>
</connections>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Company Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ill-eJ-ZJL">
<rect key="frame" x="16" y="212" width="343" height="22"/>
@@ -240,11 +267,14 @@
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Jar-TR-EzN">
<textField opaque="NO" clipsSubviews="YES" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Jar-TR-EzN">
<rect key="frame" x="16" y="310" width="343" height="30"/>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/>
<textInputTraits key="textInputTraits" returnKeyType="continue" secureTextEntry="YES"/>
<connections>
<outlet property="delegate" destination="Dwf-Hn-YUN" id="YME-gJ-Cea"/>
</connections>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Password Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zNK-Wa-fqw">
<rect key="frame" x="16" y="280" width="343" height="22"/>
@@ -252,11 +282,14 @@
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="6jE-ca-Bkw">
<textField opaque="NO" clipsSubviews="YES" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="6jE-ca-Bkw">
<rect key="frame" x="16" y="378" width="343" height="30"/>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/>
<textInputTraits key="textInputTraits" returnKeyType="done" secureTextEntry="YES"/>
<connections>
<outlet property="delegate" destination="Dwf-Hn-YUN" id="RaV-Fc-BeU"/>
</connections>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Repeat Password Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="igz-ad-G8g">
<rect key="frame" x="16" y="348" width="343" height="22"/>
@@ -333,6 +366,9 @@
<color key="value" red="0.87058823529999996" green="0.94509803920000002" blue="0.94509803920000002" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<outletCollection property="gestureRecognizers" destination="FBs-9f-1nn" appends="YES" id="Usf-DO-5H1"/>
</connections>
</view>
<connections>
<outlet property="companyLabel" destination="ill-eJ-ZJL" id="7o5-C0-pIh"/>
@@ -345,11 +381,17 @@
<outlet property="passwordTextField" destination="Jar-TR-EzN" id="yNo-Ja-FvL"/>
<outlet property="repeatPasswordLabel" destination="igz-ad-G8g" id="LcY-xx-IPF"/>
<outlet property="repeatPasswordTextField" destination="6jE-ca-Bkw" id="h31-IA-XZh"/>
<outlet property="scrollView" destination="ocm-P5-xL5" id="mfb-4q-A9C"/>
<outlet property="userNameLabel" destination="e0x-oF-wfr" id="exo-Fc-z2q"/>
<outlet property="userNameTextField" destination="uyU-Dr-ejn" id="30o-vc-BTC"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="JPH-sL-sG6" userLabel="First Responder" sceneMemberID="firstResponder"/>
<tapGestureRecognizer id="FBs-9f-1nn">
<connections>
<action selector="viewTapped:" destination="Dwf-Hn-YUN" id="hS3-2Y-jfg"/>
</connections>
</tapGestureRecognizer>
</objects>
<point key="canvasLocation" x="40.799999999999997" y="-188.45577211394306"/>
</scene>
@@ -371,11 +413,14 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hFw-4k-tbQ" userLabel="Content View">
<rect key="frame" x="0.0" y="0.0" width="375" height="231"/>
<subviews>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="dkV-73-nyH">
<textField opaque="NO" clipsSubviews="YES" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="dkV-73-nyH">
<rect key="frame" x="16" y="136" width="343" height="30"/>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
<textInputTraits key="textInputTraits"/>
<textInputTraits key="textInputTraits" returnKeyType="done"/>
<connections>
<outlet property="delegate" destination="lJd-XI-EoH" id="ce5-uK-odp"/>
</connections>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="E-Mail Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jT0-5l-zqu">
<rect key="frame" x="16" y="38" width="343" height="22"/>
@@ -393,7 +438,10 @@
<rect key="frame" x="16" y="68" width="343" height="30"/>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
<textInputTraits key="textInputTraits"/>
<textInputTraits key="textInputTraits" keyboardType="emailAddress" returnKeyType="done"/>
<connections>
<outlet property="delegate" destination="lJd-XI-EoH" id="DUv-BG-qCc"/>
</connections>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="User Name Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gaB-EC-uXP">
<rect key="frame" x="16" y="106" width="343" height="22"/>
@@ -461,17 +509,26 @@
<color key="value" red="0.87058823529411766" green="0.94509803921568625" blue="0.94509803921568625" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<outletCollection property="gestureRecognizers" destination="Mf6-lX-uCf" appends="YES" id="LMA-XH-yYu"/>
</connections>
</view>
<connections>
<outlet property="emailLabel" destination="jT0-5l-zqu" id="GlR-ob-LrF"/>
<outlet property="emailTextField" destination="VAJ-jX-LB3" id="7iN-2i-GhH"/>
<outlet property="infoLabel" destination="i3t-ER-sOF" id="khS-xC-pYc"/>
<outlet property="resetPasswordButton" destination="cy3-me-Gce" id="oh7-wd-esj"/>
<outlet property="scrollView" destination="xmA-Fn-yXT" id="cxd-Ap-Ha3"/>
<outlet property="userNameLabel" destination="gaB-EC-uXP" id="ewp-OC-hDm"/>
<outlet property="userNameTextField" destination="dkV-73-nyH" id="82t-ve-bK9"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dgK-Kn-Y93" userLabel="First Responder" sceneMemberID="firstResponder"/>
<tapGestureRecognizer id="Mf6-lX-uCf">
<connections>
<action selector="viewTapped:" destination="lJd-XI-EoH" id="xgd-n1-IHA"/>
</connections>
</tapGestureRecognizer>
</objects>
<point key="canvasLocation" x="40.799999999999997" y="-884.70764617691157"/>
</scene>
@@ -21,7 +21,7 @@ protocol SignUpViewControllerDelegate {
}
class SignUpViewController: UIViewController {
class SignUpViewController: FormularViewController {
var signUpController: SignUpController?
@@ -40,6 +40,14 @@ class SignUpViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
textFields.append(contentsOf: [
emailTextField,
userNameTextField,
nameTextField,
companyTextField,
passwordTextField,
repeatPasswordTextField]
)
setup()
}