From 275165c12d36e5c04c8a0ac2961126eecbedc792 Mon Sep 17 00:00:00 2001 From: Datt Date: Thu, 21 Nov 2019 10:53:59 +0530 Subject: [PATCH] Add Shadow Support --- .../UserInterfaceState.xcuserstate | Bin 37251 -> 38854 bytes .../DPOTPView/Base.lproj/Main.storyboard | 23 +++++-- DPOTPView/DPOTPView/DPOTPView/DPOTPView.swift | 58 +++++++++++++----- 3 files changed, 62 insertions(+), 19 deletions(-) diff --git a/DPOTPView/DPOTPView.xcodeproj/project.xcworkspace/xcuserdata/datt.xcuserdatad/UserInterfaceState.xcuserstate b/DPOTPView/DPOTPView.xcodeproj/project.xcworkspace/xcuserdata/datt.xcuserdatad/UserInterfaceState.xcuserstate index 327a924fd2e627db282fc74b0a6a1999e3c6f46f..68bb6d449a1568abd978133371d012bc72eab83d 100644 GIT binary patch delta 18689 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 HPmugSx>Cdj delta 17888 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 diff --git a/DPOTPView/DPOTPView/Base.lproj/Main.storyboard b/DPOTPView/DPOTPView/Base.lproj/Main.storyboard index 5f2f90a..1dee9c9 100644 --- a/DPOTPView/DPOTPView/Base.lproj/Main.storyboard +++ b/DPOTPView/DPOTPView/Base.lproj/Main.storyboard @@ -63,18 +63,33 @@ - + - - - + + + + + + + + + + + + + + + + + + diff --git a/DPOTPView/DPOTPView/DPOTPView/DPOTPView.swift b/DPOTPView/DPOTPView/DPOTPView/DPOTPView.swift index c610a7a..786c7fe 100644 --- a/DPOTPView/DPOTPView/DPOTPView/DPOTPView.swift +++ b/DPOTPView/DPOTPView/DPOTPView/DPOTPView.swift @@ -63,6 +63,18 @@ protocol DPOTPViewDelegate { /** Tint/cursor color for the TextField */ @IBInspectable var tintColorTextField: UIColor = UIColor.systemBlue + /** Shadow Radius for the TextField */ + @IBInspectable var shadowRadiusTextField: CGFloat = 0.0 + + /** Shadow Opacity for the TextField */ + @IBInspectable var shadowOpacityTextField: Float = 0.0 + + /** Shadow Offset Size for the TextField */ + @IBInspectable var shadowOffsetSizeTextField: CGSize = .zero + + /** Shadow color for the TextField */ + @IBInspectable var shadowColorTextField: UIColor? + /** Dismiss keyboard with enter last character*/ @IBInspectable var dismissOnLastEntry: Bool = false @@ -70,14 +82,7 @@ protocol DPOTPViewDelegate { @IBInspectable var isSecureTextEntry: Bool = false /** Hide cursor*/ - @IBInspectable var isCursorHidden: Bool = false { - didSet { - if isCursorHidden { - let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:))) - self.addGestureRecognizer(tap) - } - } - } + @IBInspectable var isCursorHidden: Bool = false /** Dark keyboard*/ @IBInspectable var isDarkKeyboard: Bool = false @@ -158,12 +163,17 @@ protocol DPOTPViewDelegate { textField.layer.borderWidth = borderWidthTextField if isCircleTextField { textField.layer.cornerRadius = sizeTextField / 2 - textField.layer.masksToBounds = true } else { textField.layer.cornerRadius = cornerRadiusTextField - textField.layer.masksToBounds = cornerRadiusTextField > 0.0 } } + textField.layer.shadowRadius = shadowRadiusTextField + if let shadowColorTextField = shadowColorTextField { + textField.layer.shadowColor = shadowColorTextField.cgColor + } + textField.layer.shadowOpacity = shadowOpacityTextField + textField.layer.shadowOffset = shadowOffsetSizeTextField + textField.textColor = textColorTextField textField.textAlignment = .center textField.keyboardType = keyboardType @@ -180,6 +190,13 @@ protocol DPOTPViewDelegate { arrTextFields.append(textField) self.addSubview(textField) + if isCursorHidden { + let tapView = UIView(frame: self.bounds) + tapView.backgroundColor = .clear + let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:))) + tapView.addGestureRecognizer(tap) + self.addSubview(tapView) + } } } @@ -197,8 +214,9 @@ protocol DPOTPViewDelegate { if arrTextFields[i].text?.count == 0 { _ = arrTextFields[i].becomeFirstResponder() break - } else if (arrTextFields.count - 1) == i{ + } else if (arrTextFields.count - 1) == i { _ = arrTextFields[i].becomeFirstResponder() + break } } } else { @@ -234,10 +252,6 @@ protocol DPOTPViewDelegate { extension DPOTPView : UITextFieldDelegate , OTPBackTextFieldDelegate { func textFieldDidBeginEditing(_ textField: UITextField) { - if isCursorHidden { - (textField as? OTPBackTextField)?.addUnselectedBorderColor() - _ = self.becomeFirstResponder() - } dpOTPViewDelegate?.dpOTPViewChangePositionAt(textField.tag/1000 - 1) } @@ -312,6 +326,13 @@ class OTPBackTextField: UITextField { layer.borderColor = selectedBorderColor.cgColor layer.borderWidth = dpOTPView.selectedBorderWidthTextField } + } else { + if dpOTPView.isBottomLineTextField { + removePreviouslyAddedLayer(name: "bottomBorderLayer") + } else { + layer.borderColor = nil + layer.borderWidth = 0 + } } } @@ -323,6 +344,13 @@ class OTPBackTextField: UITextField { layer.borderColor = unselectedBorderColor.cgColor layer.borderWidth = dpOTPView.borderWidthTextField } + } else { + if dpOTPView.isBottomLineTextField { + removePreviouslyAddedLayer(name: "bottomBorderLayer") + } else { + layer.borderColor = nil + layer.borderWidth = 0 + } } }