Swift Custom UITextField не редактируется - PullRequest
0 голосов
/ 31 марта 2020

У меня есть пользовательский UITextField в моем приложении,

class UnderLinedText: UITextField {

    override func layoutSubviews() {
        super.layoutSubviews()
        let border = CALayer()
        let width = CGFloat(1.0)
        border.borderColor = UIColor(red:0.21, green:0.13, blue:0.34, alpha:1.00).cgColor
        border.frame = CGRect(x: 0, y: self.frame.size.height - width, width:  self.frame.size.width, height: self.frame.size.height)
        border.borderWidth = width
        self.layer.addSublayer(border)
        self.layer.masksToBounds = true

    }


    override init(frame: CGRect) {
        super.init(frame: frame)
        self.textAlignment = .center
        self.borderStyle = .none
        self.isEnabled = true
        self.isUserInteractionEnabled = true
        self.font = UIFont(name: "HelveticaNeueLT-Regular", size: 20)
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }


}

И я добавил его в мои контроллеры представления, но он не работает (не могу отредактировать его текст)

class CommercialOrder: UIViewController , UITextFieldDelegate{

let bid = UnderLinedText()

override func viewDidLoad() {
        super.viewDidLoad()

        updateUI()

        bid.delegate = self

    }

 func updateUI(){
        self.view.backgroundColor = .white
        self.view.addSubview(scrollView)
        scrollView.addSubview(contentView)
        scrollView.showsVerticalScrollIndicator = false
               scrollView.autoPinEdgesToSuperviewSafeArea()
               contentView.autoPinEdgesToSuperviewEdges()
               contentView.autoMatch(.width, to: .width, of: view)
                contentView.addSubview(header)
                contentView.addSubview(bid_title)


        bid.autoPinEdge(.top, to: .bottom, of: bid_title, withOffset: 10)
        bid.autoPinEdge(toSuperviewEdge: .trailing, withInset: 20)
        bid.autoPinEdge(toSuperviewEdge: .leading, withInset: 20)
        bid.autoSetDimension(.height, toSize: 50)

        bid.text  = "Reciever mail"
}

Я даже добавлен UITextFieldDelegate make isEnabled и isUserInteractionEnabled , установленный в истинный бит, который все еще не работает

Любая помощь будет высоко ценится

1 Ответ

0 голосов
/ 07 апреля 2020

Надеюсь помочь кому-нибудь, моя проблема в том, что у contentView нет высоты, которая будет влиять на прокрутку (представление не прокручивается), поэтому он не будет получать сенсорные события, просто добавит высоту или назначит ограничение для нижней части последнего представления для contentView. как в моем случае кнопка

button.autoPinEdge(toSuperviewEdge: .bottom, withInset: 30)

И это все

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...