From 0d472ba23499bbdc726529bdb10c109a58856f07 Mon Sep 17 00:00:00 2001 From: Ahmet Sina Ustem Date: Thu, 16 Apr 2020 17:25:35 +0300 Subject: [PATCH] Global and spesific configurations added --- ALFormInput.podspec | 2 +- ALFormInput/Classes/ALValidatableConfig.swift | 6 +++--- ALFormInput/Classes/ALValidatableTextField.swift | 3 ++- Example/ALFormInput/AppDelegate.swift | 4 ++++ Example/ALFormInput/ViewController.swift | 9 ++++++++- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/ALFormInput.podspec b/ALFormInput.podspec index 4007eab..6bae61f 100644 --- a/ALFormInput.podspec +++ b/ALFormInput.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'ALFormInput' - s.version = '0.2.0' + s.version = '0.2.1' s.summary = 'Commonly used form inputs in our projects' s.homepage = 'https://github.com/applogistdev/ALFormInput' diff --git a/ALFormInput/Classes/ALValidatableConfig.swift b/ALFormInput/Classes/ALValidatableConfig.swift index 08b90b7..3d5b749 100644 --- a/ALFormInput/Classes/ALValidatableConfig.swift +++ b/ALFormInput/Classes/ALValidatableConfig.swift @@ -8,8 +8,8 @@ import UIKit import SkyFloatingLabelTextField -public class ALTextFieldConfig { - static let shared = ALTextFieldConfig() +public class ALTextFieldConfig: NSObject { + public static let shared = ALTextFieldConfig() // MARK: - Fonts public var titleFont : UIFont = UIFont.systemFont(ofSize: 13, weight: .semibold) @@ -74,5 +74,5 @@ public class ALTextFieldConfig { public var isIconVisible: Bool = false - public init () {} + public override init () {} } diff --git a/ALFormInput/Classes/ALValidatableTextField.swift b/ALFormInput/Classes/ALValidatableTextField.swift index 21cd914..7717c53 100644 --- a/ALFormInput/Classes/ALValidatableTextField.swift +++ b/ALFormInput/Classes/ALValidatableTextField.swift @@ -16,7 +16,7 @@ import FontAwesome_swift public class ALValidatableTextField: SkyFloatingLabelTextFieldWithIcon { private let validator = Validator() - private var config = ALTextFieldConfig() + private var config = ALTextFieldConfig.shared private var type = ALValidatableTextFieldType.optional private lazy var phoneNumberKit = PhoneNumberKit() @@ -110,6 +110,7 @@ public class ALValidatableTextField: SkyFloatingLabelTextFieldWithIcon { public func setConfig(_ config: ALTextFieldConfig = ALTextFieldConfig()) { self.config = config + setupDefaultLook() } public func setTypesAndRules(_ type: ALValidatableTextFieldType = .optional, diff --git a/Example/ALFormInput/AppDelegate.swift b/Example/ALFormInput/AppDelegate.swift index 0f9346a..1616a08 100644 --- a/Example/ALFormInput/AppDelegate.swift +++ b/Example/ALFormInput/AppDelegate.swift @@ -15,6 +15,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + + // Set global configurations like below for all ALValidatableTextField's + ALTextFieldConfig.shared.errorColor = .red + return true } diff --git a/Example/ALFormInput/ViewController.swift b/Example/ALFormInput/ViewController.swift index 147f53e..7f09e95 100644 --- a/Example/ALFormInput/ViewController.swift +++ b/Example/ALFormInput/ViewController.swift @@ -43,6 +43,8 @@ class ViewController: UIViewController { } private func setupTextFields() { + + emailTextField.setTypesAndRules(.email) emailTextField.fontAwesomeImage = .envelope passwordTextField.setTypesAndRules(.password) @@ -50,10 +52,15 @@ class ViewController: UIViewController { nameTextField.fontAwesomeImage = .user surnameTextfield.setTypesAndRules(.surname) surnameTextfield.fontAwesomeImage = .user + + // Set spesific configuration + let config = ALTextFieldConfig() + config.errorColor = .purple + phoneTextField.setConfig(config) + phoneTextField.setTypesAndRules(.phoneNumber) phoneTextField.fontAwesomeImage = .mobileAlt phoneTextField.fontAwesomeStyle = .solid - phoneTextField.setFormattedPhoneNumber("+905318888741")