UI美化

正常情况下,只要触摸焦点放在输入框如textField/textView上,自动会弹出键盘,所以,隐藏键盘的最终方法就是让控件失去焦点。

textField.resignFirstResponder()

textView.resignFirstResponder()

 

用例一.TextField按Enter键隐藏

实现委托UITextFieldDelegate 方法

func textFieldShouldReturn(textField:UITextField) -> Bool {

  textField.resignFirstResponder()

  return true

}

 

 

用例二.点击其他任意地方隐藏(不适用于tableView)

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

        textField.resignFirstResponder()

}

 

 

用例三.点击手势隐藏(不适用于tableview,涉及cell点击冲突)

//声明隐藏虚拟键盘的操作

let hideTap = UITapGestureRecognizer(target: self, action: #selector(hidekeyboardTap(recognizer:)))

hideTap.numberOfTapsRequired = 1

self.view.isUserInteractionEnabled = true

self.view.addGestureRecognizer(hideTap)



//隐藏视图中的虚拟键盘

 func hidekeyboardTap(recognizer:UITapGestureRecognizer) {

        self.view.endEditing(true)

}

 

 

用例四.滚动tableView隐藏

override func scrollViewDidScroll(_ scrollView: UIScrollView) {
    textField.resignFirstResponder()
}