material-components-ios icon indicating copy to clipboard operation
material-components-ios copied to clipboard

MDCTextInputControllerFilled LeadingUnderLineLabel Content Height

Open SreekanthGudisi opened this issue 5 years ago • 1 comments

For usage questions: ask on Stack Overflow.

Actually I'm not sure this is bug or not.

Reproduction steps

Steps to reproduce the behavior:

    @IBOutlet weak var fullNameContainerView: UIView!

    // MDCTextFields
    let txtFieldFullName:MDCTextField = {
        let txtField = MDCTextField()
        txtField.setUpMDCTextField()
        return txtField
    }()

    func setUpMDCTextField()  {
        
        self.translatesAutoresizingMaskIntoConstraints = false
        self.autocapitalizationType = .words
        self.keyboardType = .alphabet
    }

    // MDCTextInputControllerFilled
    lazy var txtFieldControllerFullName:MDCTextInputControllerFilled = {
        let fullNameController = OMFloatingTextController(textInput: txtFieldFullName)
        fullNameController.setup()
        fullNameController.placeholderText = "add_address_full_name".localized
        txtFieldFullName.setUpMDCTextFieldToController(delegate: self, leadingViewMode: .always, trailingViewMode: .never, leadingImage: UIImageView(image: #imageLiteral(resourceName: "icUserGrayStar24")), trailingView: nil)
        return fullNameController
    }()

    func setUpMDCTextFieldToController(delegate: UITextFieldDelegate, leadingViewMode: UITextField.ViewMode?, trailingViewMode: UITextField.ViewMode?, leadingImage: UIImageView?, trailingView: UIImageView?)  {
        
        self.delegate = delegate
        self.font = UIFont.heading16
        self.leadingUnderlineLabel.numberOfLines = 0
        self.leadingUnderlineLabel.lineBreakMode = .byTruncatingTail
        self.placeholderLabel.font = UIFont.paragraphText14Pt
        self.placeholderLabel.textColor = .brownGrey2
        self.underline?.backgroundColor = .veryLightPink
        self.leadingViewMode = leadingViewMode!
        self.trailingViewMode = trailingViewMode!
        self.leadingView = leadingImage
        self.trailingView = trailingView
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        fullNameContainerView.addSubview(txtFieldFullName)
        _ = txtFieldControllerFullName
        txtFieldFullName.constraintView(toParentView: fullNameContainerView)
    }

    func constraintView(toParentView parentView:UIView)
       {
           self.translatesAutoresizingMaskIntoConstraints = false
           leadingAnchor.constraint(equalTo: parentView.leadingAnchor).isActive = true
           topAnchor.constraint(equalTo: parentView.topAnchor).isActive = true
           trailingAnchor.constraint(equalTo: parentView.trailingAnchor).isActive = true
    //       bottomAnchor.constraint(equalTo: parentView.bottomAnchor).isActive = true
           let vari = self.heightAnchor.constraint(equalToConstant: 56)
           vari.priority = .defaultHigh
           vari.isActive = true
       }

Expected behavior

LeadingUnderLineLabel has to fit in the MDCTextInputControllerFilledController, LeadingUnderLineLabel top constraint should fit to at the bottom of the underline and LeadingUnderLineLabel has to grow with content height.

Actual behavior

  1. Go to '...' Here I'm Using MDCTextInputControllerFilled
  2. Tap on '....' When I tap on a textField have to show LeadingUnderLineLabel with content height. But it's overlapping to top. Screenshot 2020-09-21 at 11 44 08 AM

Platform (please complete the following information)

  • Device: [e.g. iPhone11pro]
  • OS: [e.g. iOS 13.3]

SreekanthGudisi avatar Sep 21 '20 06:09 SreekanthGudisi

The title doesn't have a [Component] prefix.