我正在尝试处理UITextField的滚动,以避免键盘重叠它。 Click here to view current OUTPUT i am getting] StoryBoard Screenshot。当我单击最后一个文本字段..ie密码字段时,我试图滚动视图。当我单击密码字段时,只有电子邮件字段(即第二个)正在向上滚动。第一场和最后一场没有滚动出现。我该如何解决这个问题?
`
//
// ViewController.swift
import UIKit
class ViewController: UIViewController,UITextFieldDelegate {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var name: UITextField!
@IBOutlet weak var email: UITextField!
@IBOutlet weak var password: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
func textFieldDidBeginEditing(_ textField: UITextField) {
// Begin
switch textField.tag {
case 0...1:
print("DO NOTHING")
default:
print("Do Scroll")
scrollView.setContentOffset(CGPoint(x:0,y:100) , animated: true)
}
}
func textFieldDidEndEditing(_ textField: UITextField) {
// End
scrollView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
// Return
if textField.tag == 0
{
email.becomeFirstResponder()
}
else if textField.tag == 1
{
password.becomeFirstResponder()
}
else if textField.tag == 2
{
textField.resignFirstResponder()
}
return true
}
}
`
最佳答案
除非您真的想自己处理逻辑,否则建议您尝试IQKeyboardManager!
这是一个简单的CocoaPod库,您可以在appDelegate中导入并启用该库,仅此而已。
这是一个无代码的库,因此您真的不必再考虑它了,因为它可以接管并处理整个应用程序中每个文本字段的重新定位。