Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在tableView中单击文本字段时,ScrollView没有向上移动_Ios_Swift_Tableview_Scrollview_Textfield - Fatal编程技术网

Ios 在tableView中单击文本字段时,ScrollView没有向上移动

Ios 在tableView中单击文本字段时,ScrollView没有向上移动,ios,swift,tableview,scrollview,textfield,Ios,Swift,Tableview,Scrollview,Textfield,我尝试了以下代码: 在视图中,将显示: NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillDisappear), name: Notification.Name.UIKeyboardWillHide, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillApp

我尝试了以下代码: 在视图中,将显示:

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillDisappear), name: Notification.Name.UIKeyboardWillHide, object: nil)
    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillAppear), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
以及:

结果是:

我想要的是,当键盘显示如下时,键盘没有覆盖文本字段:

该代码仅适用于不在tableView中的textfield。 但当我在tableView中单击textfield并记录时,键盘总是被检测到


键盘出现时,键盘未覆盖的tableView中文本字段的正确代码是什么?

这是常见的行为,与android不同,ios无法自动调整键盘上方的内容。我的解决方案是,您可以将所有视图(照片、文本字段等)包装到tableView中。并使用tpkeyboard库


如果您使用故事板,请将tableView基类设置为TPKeyboardAvoidTableView。

这是常见的行为,与android不同,ios无法自动调整键盘上方的内容。我的解决方案是,您可以将所有视图(照片、文本字段等)包装到tableView中。并使用tpkeyboard库


如果使用故事板,请将tableView基类设置为TPKeyboardAvoidTableView。

以下是管理此类行为最常用的库:


您也可以通过cocoapod安装它们。

以下是管理此类行为最常用的库:

您也可以通过CoCoaPod安装它们。

处理此问题的最简单方法是为IQKeyboardManager安装pod:

通过可可豆安装:

pod 'IQKeyboardManagerSwift'
用法:

import IQKeyboardManagerSwift

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

      IQKeyboardManager.shared.enable = true

      return true
    }
}
有关IQKeyboardManager的更多信息,请参阅此链接:

处理此问题的最简单方法是安装IQKeyboardManager的pod:

通过可可豆安装:

pod 'IQKeyboardManagerSwift'
用法:

import IQKeyboardManagerSwift

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

      IQKeyboardManager.shared.enable = true

      return true
    }
}
有关IQKeyboardManager的更多信息,请参阅此链接:


为什么不使用IQkeyboardManager pod库,处理键盘非常容易。@JarvisTheAvenger如何使用它?只需在您的appDelegate.swift文件中安装pod'IQKeyboardManager Wift',并在中完成启动添加以下行:IQKeyboardManager.shared.enable=True我们过去手动处理它时遇到很多问题,然后我们转到IQKeyboardManager很棒的Pod库。为什么不使用IQkeyboardManager Pod库,处理键盘非常容易。@JarvisTheAvenger如何使用它?只需在您的appDelegate.swift文件中安装pod'IQKeyboardManager Wift',并在中完成启动添加以下行:IQKeyboardManager.shared.enable=True我们过去手动处理它时遇到很多问题,然后我们转到IQKeyboardManager伟大的Pod库。@JarvisTheAvenger伟大的答案和示例如何使用它。@JarvisTheAvenger伟大的答案和示例如何使用它。