【发布时间】:2016-10-11 17:24:01
【问题描述】:
昨天我的代码运行良好,从那以后我唯一更改的是将另一个表视图设置为根表视图并将其单元格中的一个 segue 放入此 VC,但现在它突然不工作了。非常感谢任何可以提供帮助的人!
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(keyboardWillShow(_:)), name: UIKeyboardWillShowNotification, object: self.view.window)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(keyboardWillHide(_:)), name: UIKeyboardWillHideNotification, object: self.view.window)
}
func keyboardWillShow(sender: NSNotification) {
guard let userInfo: [NSObject: AnyObject] = sender.userInfo,
keyboardSize: CGSize = userInfo[UIKeyboardFrameBeginUserInfoKey]?.CGRectValue.size,
offset: CGSize = userInfo[UIKeyboardFrameEndUserInfoKey]?.CGRectValue.size else { return }
if keyboardSize.height == offset.height {
if self.view.frame.origin.y == 0 {
UIView.animateWithDuration(0.1, animations: { () -> Void in
self.view.frame.origin.y -= keyboardSize.height
})
}
} else {
UIView.animateWithDuration(0.1, animations: { () -> Void in
self.view.frame.origin.y += keyboardSize.height - offset.height
})
}
}
func keyboardWillHide(sender: NSNotification) {
guard let userInfo: [NSObject: AnyObject] = sender.userInfo,
keyboardSize: CGSize = userInfo[UIKeyboardFrameBeginUserInfoKey]?.CGRectValue.size else { return }
self.view.frame.origin.y += keyboardSize.height
}
override func viewWillDisappear(animated: Bool) {
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIKeyboardWillShowNotification, object: self.view.window)
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIKeyboardWillHideNotification, object: self.view.window)
}
【问题讨论】:
-
你为什么不追溯你昨天的工作……?
-
我做了,它包含在问题中。
-
viewDidLoad被调用了吗?
标签: ios swift view uiview keyboard