swift 获取ios软键盘高度,并让UITextField或UITextView自动随键盘上移

用到的变量

@IBOutlet weak var textField: UITextField!

var keyHeight = CGFloat() //键盘的高度

在viewDidLoad()中声明一个监听键盘事件

override func viewDidLoad() {

super.viewDidLoad()

textField.delegate = self

let centerDefault = NSNotificationCenter.defaultCenter()

centerDefault.addObserver(self, selector: #selector(ViewController.keyboardWillShow), name: UIKeyboardWillShowNotification, object: nil)

}

//完成keyboardWillShow() 

//同时键盘弹出时上移

func keyboardWillShow(aNotification: NSNotification) {

let userinfo: NSDictionary = aNotification.userInfo!

let nsValue = userinfo.objectForKey(UIKeyboardFrameEndUserInfoKey)

let keyboardRec = nsValue?.CGRectValue()

let height = keyboardRec?.size.height

self.keyHeight = height! 

UIView.animateWithDuration(0.5, animations: {

var frame = self.view.frame

frame.origin.y = -self.keyHeight

self.view.frame = frame

}, completion: nil)

}


//键盘隐藏时恢复

func textFieldShouldEndEditing(textField: UITextField) -> Bool {

UIView.animateWithDuration(0.5, animations: {

var frame = self.view.frame

frame.origin.y = 0

self.view.frame = frame

}, completion: nil)

return true

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容