【问题标题】:get keyboard height before keyboard appears?在键盘出现之前获取键盘高度?
【发布时间】:2016-04-25 05:35:21
【问题描述】:

有没有办法在键盘出现之前获得键盘高度?

我想创建一个类似于 instagram 的登录屏幕,其中文本字段放置在键盘正下方的位置(如您在屏幕截图中所见)。

感谢您的任何建议。

【问题讨论】:

    标签: ios objective-c user-interface keyboard


    【解决方案1】:

    我敢打赌,我知道 Instagram 是如何做到的。

    当您首次启动 Instagram 时,它会通过键盘显示用户名和密码屏幕(您的第二张屏幕截图)。由于它一启动就会显示键盘,我敢打赌它会重新定位登录屏幕,然后将键盘高度保存在NSUserDefault 中。您可能可以通过安装不同高度的不同键盘来测试这一点。

    【讨论】:

      【解决方案2】:

      Instagram 必须使用自定义键盘,请在此处查看如何实现您自己的 (https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html)。它的高度是在文本字段视图之后计算的。

      要调整自定义键盘的高度,请更改其主视图的高度约束。以下代码行显示了如何定义和添加这样的约束:

      CGFloat _expandedHeight = 500;
      NSLayoutConstraint *_heightConstraint = 
          [NSLayoutConstraint constraintWithItem: self.view 
                                       attribute: NSLayoutAttributeHeight 
                                       relatedBy: NSLayoutRelationEqual 
                                          toItem: nil 
                                       attribute: NSLayoutAttributeNotAnAttribute 
                                      multiplier: 0.0 
                                        constant: _expandedHeight];
      [self.view addConstraint: _heightConstraint];
      

      【讨论】:

      • 好吧,我对此表示怀疑,因为 instagram 应用程序中提供的键盘没有任何语言切换选项,如果您想通过审批流程让您的应用程序获得自定义键盘,这是必须的。
      • @andrejbroncek 如果多语言键盘不是一个可行的解决方案,Apple 建议“为每种语言创建一个键盘,每个键盘作为单独的目标添加到一个通用的包含应用程序中。”
      • 嗯,那可能是 :) 谢谢你的洞察力。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 2019-04-09
      • 2016-12-26
      • 2018-08-22
      • 2014-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多