[iOS] UITextField & UITestView

Keyboard Events

隨著Keyboard event調整View的origin.y:

func registerKeyboardNotifications(){
    NotificationCenter.default.addObserver(self, selector: #selector(kyboardWillShow(notification:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
    NotificationCenter.default.addObserver(self, selector: #selector(UIKeyboardWillHide(notification:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}
    
func deregisterKeyboardNotifications(){
    NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: nil)
    NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}
    
@objc func kyboardWillShow(notification: NSNotification){
     var info = notification.userInfo!
     let keyboardSize = (info[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue.size
     
     UIView.animate(withDuration: 0.25) {
        self.view.frame.origin.y = -keyboardSize!.height //Keyboard Height
     }
}
    
@objc func UIKeyboardWillHide(notification: NSNotification){
     UIView.animate(withDuration: 0.25) {
        self.view.frame.origin.y = 0
     }
}

UITextField

return收起鍵盤:

使用IBDesignable 製作一個擁有Left Icon的TextField:

IDE效果

運行效果

其中color參數為imageView的tintColor, 使用的image需放在xcassets檔中, 必把Render as參數設為

"Template Image" 方能使用

UITestView

Last updated