【问题标题】:change views height in Keyboard extension (iPhone X)更改键盘扩展中的视图高度(iPhone X)
【发布时间】:2018-08-31 15:37:54
【问题描述】:

我有以下问题:我构建了一个键盘扩展,是系统键盘的替代键盘。在所有较旧的 iPhone 型号中,它都可以正常工作,但在 iPhone X 上却不行。我的问题是,键盘视图的高度从 216px (iPhone 8 ,8+ , ...) 减少到 141px (iPhone X)。因为较低的高度,我的键盘按钮现在更小,为了更好的用户可用性。

我确实使用了一个 .xib 文件来创建 UI,我以编程方式添加了所有 UI - 项目。

我的问题

是否可以为键盘扩展视图(特别是 iPhone X)获得更多空间(高度)?

【问题讨论】:

    标签: swift swift4 iphone-x ios-keyboard-extension


    【解决方案1】:

    我解决了我的问题。我在Apple documentation 中找到了以下段落:

    您可以使用自动布局调整自定义键盘主视图的高度。默认情况下,自定义键盘的大小会根据屏幕大小和设备方向与系统键盘匹配。自定义键盘的宽度始终由系统设置为等于当前屏幕宽度。要调整自定义键盘的高度,请更改其主视图的高度约束。

    以下代码行显示了如何定义和添加这样的约束:

    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];
    

    斯威夫特 4

    override func viewDidLayoutSubviews() {
            super.viewDidLayoutSubviews()
            let heightConstraint = NSLayoutConstraint(item: self.view, attribute: NSLayoutAttribute.height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 0.0, constant: 300)
            self.view.addConstraint(heightConstraint)
        }
    

    【讨论】:

      【解决方案2】:

      将约束添加到ViewDidLoad 方法可以解决问题。

      override func viewDidLoad() {
              super.viewDidLoad()
              let heightConstraint = NSLayoutConstraint(item: self.view, attribute: NSLayoutAttribute.height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 0.0, constant: 220)
              self.view.addConstraint(heightConstraint)
              setupKeyboard()
      

      注意:创建子视图会产生内存警告。

      【讨论】:

        猜你喜欢
        • 2018-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-23
        • 1970-01-01
        • 2013-01-16
        • 2014-11-15
        • 2014-11-23
        相关资源
        最近更新 更多