首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >UITextField -返回时向下滚动

UITextField -返回时向下滚动
EN

Stack Overflow用户
提问于 2018-04-02 12:33:04
回答 5查看 668关注 0票数 1

我在一个视图控制器上有多个文本字段,并且已经实现了textFieldShouldReturn函数,这样当我点击return时,它就会转到下一个文本字段。但是,现在屏幕保持不变,所以活动文本字段被键盘遮住了。

如何才能使屏幕向下滚动,并且可以看到活动的文本字段?

相关代码:

代码语言:javascript
代码运行次数:0
运行
复制
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        let nextTextFieldTag = textField.tag + 1
        let nextTextField = textField.superview?.viewWithTag(nextTextFieldTag)

        if nextTextField != nil {
            nextTextField?.becomeFirstResponder()
        } else {
            textField.resignFirstResponder()
        }

        return false
    }
EN

回答 5

Stack Overflow用户

发布于 2018-04-02 12:40:07

最简单的方法是使用IQKeyboardManager (https://github.com/hackiftekhar/IQKeyboardManager)

您所需要做的就是将IQKeyboardManager添加到您的Pod中,安装它并添加初始代码。就这样

https://github.com/hackiftekhar/IQKeyboardManager复制添加到pod文件

代码语言:javascript
代码运行次数:0
运行
复制
`pod 'IQKeyboardManagerSwift'`

AppDelegate.swift中,只需使用import IQKeyboardManagerSwift框架并启用IQKeyboardManager即可。

代码语言:javascript
代码运行次数:0
运行
复制
import IQKeyboardManagerSwift

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

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

      IQKeyboardManager.sharedManager().enable = true

      return true
    }
}

如果你想自己做的话。

在您的view.frame.y中,获取活动textfield

  • New视图的框架。textFieldShouldReturn .y -=

  • TextField.frame.y+textFieldShouldReturn

  • Change frame

或者,您可以将所有文本字段添加到scrollview中,只需简单地更改scrollview.contentOffset.y

票数 0
EN

Stack Overflow用户

发布于 2018-04-02 12:45:51

在UIScrollView中有两种滚动方式:

  • scrollView.setContentOffset(textField.frame.origin, animated: true).
  • scrollView.scrollRectToVisible(textField.frame, animated: true)
票数 0
EN

Stack Overflow用户

发布于 2018-04-02 13:04:01

我假设你所有的文本字段都在滚动视图scrollView上。现在,您希望下一个文本字段nextTextField向上滚动。在这种情况下-

在你的if条件下-

代码语言:javascript
代码运行次数:0
运行
复制
scrollView.contentOffset = CGPoint(x : 0, y : nextTextField.frame.y)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49605336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档