演示链接:https://github.com/harshilkotecha/UIScrollViewWhenKeyboardAppearInSwift3
当你有多个TextView的它是如此的困难所以最好的解决方案 - >
第1步:添加UITextFieldDelegate
class ScrollViewController: UIViewController,UITextFieldDelegate {
第2步:创建新IBOutlet,但不要与任何文本字段连接
// get current text box when user Begin editing
@IBOutlet weak var activeTextField: UITextField?
步骤3:在viewDidLoad中设定通知setNotificationKeyboard
override func viewWillAppear(_ animated: Bool) {
// call method for keyboard notification
self.setNotificationKeyboard()
}
// Notification when keyboard show
func setNotificationKeyboard() {
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWasShown(notification:)), name: .UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillBeHidden(notification:)), name: .UIKeyboardWillHide, object: nil)
}
步骤6:当用户聚焦文本提交对象传给
// get current text field
func textFieldDidBeginEditing(_ textField: UITextField)
{
activeTextField=textField;
}
func textFieldDidEndEditing(_ textField: UITextField)
{
activeTextField=nil;
}
步骤5在activeTextField基准和存储写此二方法:两种方法隐藏和取消隐藏
func keyboardWasShown(notification: NSNotification)
{
var info = notification.userInfo!
let keyboardSize = (info[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue.size
let contentInsets : UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, keyboardSize!.height+10, 0.0)
self.scrollView.contentInset = contentInsets
self.scrollView.scrollIndicatorInsets = contentInsets
var aRect : CGRect = self.view.frame
aRect.size.height -= keyboardSize!.height
if let activeField = self.activeTextField
{
if (!aRect.contains(activeField.frame.origin))
{
self.scrollView.scrollRectToVisible(activeField.frame, animated: true)
}
}
}
// when keyboard hide reduce height of scroll view
func keyboardWillBeHidden(notification: NSNotification){
let contentInsets : UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0,0.0, 0.0)
self.scrollView.contentInset = contentInsets
self.scrollView.scrollIndicatorInsets = contentInsets
self.view.endEditing(true)
}
检查您的删除者是否已连接 –
演示检查此链接:https://github.com/harshilkotecha/UIScrollViewWhenKeyboardAppearInSwift3 –