我正在尝试处理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中导入并启用该库,仅此而已。

这是一个无代码的库,因此您真的不必再考虑它了,因为它可以接管并处理整个应用程序中每个文本字段的重新定位。

07-24 09:36