resolving state of error image
This commit is contained in:
parent
cc5eb5c58e
commit
949cd3292f
@ -76,15 +76,6 @@ import UIKit
|
||||
public var digitBoxes: [DigitBox] = []
|
||||
private var selectedDigitBox: DigitBox?
|
||||
|
||||
public lazy var errorImage: UIImageView = {
|
||||
let image = MVMCoreUIUtility.imageNamed("alert_standard")
|
||||
let imageView = UIImageView(image: image)
|
||||
imageView.translatesAutoresizingMaskIntoConstraints = false
|
||||
imageView.heightAnchor.constraint(equalToConstant: 20).isActive = true
|
||||
imageView.widthAnchor.constraint(equalToConstant: 20).isActive = true
|
||||
return imageView
|
||||
}()
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Computed Properties
|
||||
//--------------------------------------------------
|
||||
@ -214,7 +205,6 @@ import UIKit
|
||||
|
||||
isAccessibilityElement = false
|
||||
entryFieldContainer.disableAllBorders = true
|
||||
usesAccessoryView = false
|
||||
}
|
||||
|
||||
@objc private func createDigitField() -> DigitBox {
|
||||
|
||||
@ -35,7 +35,22 @@ import UIKit
|
||||
textField.smartInsertDeleteType = .no
|
||||
return textField
|
||||
}()
|
||||
|
||||
|
||||
private var standardAccessoryView: UIView?
|
||||
|
||||
public var accessoryView: UIView? {
|
||||
didSet { accessoryView == nil ? unconstrainAccessoryView() : constrainAccessoryView() }
|
||||
}
|
||||
|
||||
public lazy var errorImage: UIImageView = {
|
||||
let image = MVMCoreUIUtility.imageNamed("alert_standard")
|
||||
let imageView = UIImageView(image: image)
|
||||
imageView.translatesAutoresizingMaskIntoConstraints = false
|
||||
imageView.heightAnchor.constraint(equalToConstant: 20).isActive = true
|
||||
imageView.widthAnchor.constraint(equalToConstant: 20).isActive = true
|
||||
return imageView
|
||||
}()
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Stored Properties
|
||||
//--------------------------------------------------
|
||||
@ -85,6 +100,17 @@ import UIKit
|
||||
textField.accessibilityValue = nil
|
||||
}
|
||||
|
||||
if textField.isSecureTextEntry {
|
||||
if !error {
|
||||
accessoryView?.removeFromSuperview()
|
||||
accessoryView = nil
|
||||
accessoryView = standardAccessoryView
|
||||
} else {
|
||||
standardAccessoryView = accessoryView
|
||||
accessoryView = errorImage
|
||||
}
|
||||
}
|
||||
|
||||
super.showError = error
|
||||
}
|
||||
}
|
||||
@ -137,6 +163,28 @@ import UIKit
|
||||
//--------------------------------------------------
|
||||
|
||||
public var textFieldTrailingConstraint: NSLayoutConstraint?
|
||||
public var accessoryViewTrailingConstraint: NSLayoutConstraint?
|
||||
|
||||
public func constrainAccessoryView() {
|
||||
|
||||
guard let accessoryView = accessoryView else { return }
|
||||
|
||||
entryFieldContainer.addSubview(accessoryView)
|
||||
|
||||
textFieldTrailingConstraint?.isActive = false
|
||||
textFieldTrailingConstraint = accessoryView.leadingAnchor.constraint(equalTo: textField.trailingAnchor, constant: Padding.Two)
|
||||
textFieldTrailingConstraint?.isActive = true
|
||||
|
||||
accessoryViewTrailingConstraint = entryFieldContainer.trailingAnchor.constraint(equalTo: accessoryView.trailingAnchor, constant: Padding.Four)
|
||||
accessoryViewTrailingConstraint?.isActive = true
|
||||
accessoryView.centerYAnchor.constraint(equalTo: entryFieldContainer.centerYAnchor).isActive = true
|
||||
}
|
||||
|
||||
public func unconstrainAccessoryView() {
|
||||
|
||||
textFieldTrailingConstraint = entryFieldContainer.trailingAnchor.constraint(equalTo: textField.trailingAnchor, constant: Padding.Four)
|
||||
textFieldTrailingConstraint?.isActive = true
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Initializers
|
||||
@ -185,6 +233,15 @@ import UIKit
|
||||
entryFieldContainer.addGestureRecognizer(tap)
|
||||
|
||||
accessibilityElements = [titleLabel, textField, feedbackLabel]
|
||||
|
||||
// TODO: Remove these two lines.
|
||||
let tapErr = UITapGestureRecognizer(target: self, action: #selector(tapForError))
|
||||
titleLabel.addGestureRecognizer(tapErr)
|
||||
}
|
||||
|
||||
// TODO: Remove this func
|
||||
@objc func tapForError() {
|
||||
showError.toggle()
|
||||
}
|
||||
|
||||
@objc open override func updateView(_ size: CGFloat) {
|
||||
@ -337,46 +394,3 @@ extension TextEntryField {
|
||||
textField.accessibilityLabel = "\(accessibilityString) \(textField.isEnabled ? "" : MVMCoreUIUtility.hardcodedString(withKey: "textfield_disabled_state") ?? "")"
|
||||
}
|
||||
}
|
||||
|
||||
// FOR isSecureEntry state
|
||||
/*
|
||||
|
||||
public var accessoryViewTrailingConstraint: NSLayoutConstraint?
|
||||
|
||||
|
||||
// textFieldTrailingConstraint?.isActive = false
|
||||
// textFieldTrailingConstraint = errorImage.leadingAnchor.constraint(equalTo: textField.trailingAnchor, constant: Padding.Two)
|
||||
// textFieldTrailingConstraint?.isActive = true
|
||||
//
|
||||
// container.trailingAnchor.constraint(equalTo: errorImage.trailingAnchor, constant: Padding.Four).isActive = true
|
||||
// errorImage.centerYAnchor.constraint(equalTo: container.centerYAnchor).isActive = true
|
||||
|
||||
|
||||
public lazy var errorImage: UIImageView = {
|
||||
let image = MVMCoreUIUtility.imageNamed("alert_standard")
|
||||
let imageView = UIImageView(image: image)
|
||||
imageView.translatesAutoresizingMaskIntoConstraints = false
|
||||
imageView.heightAnchor.constraint(equalToConstant: 20).isActive = true
|
||||
imageView.widthAnchor.constraint(equalToConstant: 20).isActive = true
|
||||
return imageView
|
||||
}()
|
||||
|
||||
public func constrainAccessoryView() {
|
||||
|
||||
entryFieldContainer.addSubview(errorImage)
|
||||
|
||||
textFieldTrailingConstraint?.isActive = false
|
||||
textFieldTrailingConstraint = errorImage.leadingAnchor.constraint(equalTo: textField.trailingAnchor, constant: Padding.Two)
|
||||
textFieldTrailingConstraint?.isActive = true
|
||||
|
||||
accessoryViewTrailingConstraint = entryFieldContainer.trailingAnchor.constraint(equalTo: errorImage.trailingAnchor, constant: Padding.Four)
|
||||
accessoryViewTrailingConstraint?.isActive = true
|
||||
errorImage.centerYAnchor.constraint(equalTo: entryFieldContainer.centerYAnchor).isActive = true
|
||||
}
|
||||
|
||||
public func unconstrainAccessoryView() {
|
||||
|
||||
textFieldTrailingConstraint = entryFieldContainer.trailingAnchor.constraint(equalTo: textField.trailingAnchor, constant: Padding.Four)
|
||||
textFieldTrailingConstraint?.isActive = true
|
||||
}
|
||||
*/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user