UITextField меняет ширину при нажатии кнопки - PullRequest
0 голосов
/ 08 апреля 2020

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

enter image description here

Я попытался сначала создать ширину UITextField 0, а затем сделать кнопку, чтобы увеличить ширину, но я что-то делаю неправильно, и я не могу понять, что. Может быть, вы могли бы сделать пример в пустом проекте и показать / связать код?

Я надеюсь, вы можете помочь:)

Ответы [ 2 ]

2 голосов
/ 08 апреля 2020
UIView.animate(withDuration: 0.3, delay: 0, options: .curveEaseInOut, animations: {
        //change view width
    }) { (completed) in
        //you can use completion or you can delete I am using it like that
        self.searchTextview.becomeFirstResponder()
    }

Я использую это для своего взгляда. Вы можете изменить для своих нужд. Изменить ограничения или ширину с анимацией

1 голос
/ 12 апреля 2020

Функция для расширения SearchTextField

  func setTextField(setExpand:Bool = false){

        self.txtfldSearch.delegate = self
        self.txtfldSearch.borderStyle = UITextField.BorderStyle.none
        self.txtfldSearch.translatesAutoresizingMaskIntoConstraints = true
        let bottomLine = CALayer()
        bottomLine.backgroundColor = UIColor.red.cgColor
        UIView.animate(withDuration: 0.5) {
          if setExpand{
                      self.txtfldSearch.frame = CGRect(x: 
                      self.viewContainer.frame.origin.x + 8, y: 
                      self.txtfldSearch.frame.origin.y, width: 
                      (self.btnSearch.frame.origin.x - 
                      (self.viewContainer.frame.origin.x + 16)), 
                       height: self.txtfldSearch.frame.size.height)
                       bottomLine.frame = CGRect(x: 0.0, y: 
                      self.txtfldSearch.frame.size.height-2, width: 
                      self.txtfldSearch.frame.size.width, height: 2.0)
            }
       else{
                    self.txtfldSearch.frame = CGRect(x: 
                    self.btnSearch.frame.origin.x - 8, 
                    y: self.txtfldSearch.frame.origin.y, width: 0, 
                    height:self.txtfldSearch.frame.size.height)
                    bottomLine.frame = CGRect(x: 0.0, y: 
                    self.txtfldSearch.frame.size.height-2, width: 
                    self.txtfldSearch.frame.size.width, height: 2.0)
            }  
      }    
    self.txtfldSearch.layer.addSublayer(bottomLine)

}

Использование кода для расширения pass true и другой случай передачи false

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