【发布时间】:2016-03-06 16:19:59
【问题描述】:
我正在使用一些函数在InputView 之后立即移动UITextFields,请参阅下面的代码:
func DismissKeyboard(){
//Causes the view (or one of its embedded text fields) to resign the first responder status.
view.endEditing(true)
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.registerForKeyboardNotifications()
}
override func viewDidDisappear(animated: Bool) {
super.viewWillDisappear(animated)
NSNotificationCenter.defaultCenter().removeObserver(self)
}
func registerForKeyboardNotifications() {
let notificationCenter = NSNotificationCenter.defaultCenter()
notificationCenter.addObserver(self,
selector: "keyboardWillBeShown:",
name: UIKeyboardWillShowNotification,
object: nil)
notificationCenter.addObserver(self,
selector: "keyboardWillBeHidden:",
name: UIKeyboardWillHideNotification,
object: nil)
}
func keyboardWillBeShown(sender: NSNotification) {
let info: NSDictionary = sender.userInfo!
let value: NSValue = info.valueForKey(UIKeyboardFrameBeginUserInfoKey) as! NSValue
let keyboardSize: CGSize = value.CGRectValue().size
let contentInsets: UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, keyboardSize.height + 8, 0.0)
backgroundScrollView.contentInset = contentInsets
backgroundScrollView.scrollIndicatorInsets = contentInsets
}
// Called when the UIKeyboardWillHideNotification is sent
func keyboardWillBeHidden(sender: NSNotification) {
let insets: UIEdgeInsets = UIEdgeInsetsMake(self.backgroundScrollView.contentInset.top, 0, 0, 0)
//let insets: UIEdgeInsets = UIEdgeInsetsZero
backgroundScrollView.contentInset = insets
backgroundScrollView.scrollIndicatorInsets = insets
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
发生的事情是,点击第一个UITextField,backgroundScrollView 停止滚动后,我的应用程序有很多字段需要滚动屏幕才能看到。
我可能做错了什么?
【问题讨论】:
-
你能在
keyboardWillBeShown和keyboardWillBeHidden函数里面检查backgroundScrollView的contentsize..如果它小于显示区域大小或0 -
我如何检查这个?我对此很陌生。
标签: ios iphone uiscrollview uitextfield inputview