如何用Swift更改iOS 8自定义键盘高度?

时间:2014-08-25 10:51:07

标签: ios objective-c iphone swift keyboard

我正在使用Swift为iOS 8制作自定义键盘。我是iOS开发的新手,我自己无法解决这个问题。在Apple App程序扩展编程文档中,Apple表示您可以在启动后更改任何自定义键盘的高度。他们在Objective-C中提供了一个示例,但我使用的是Swift,到目前为止,我似乎无法找到Swift版本的代码。

有人可以将3行代码转换成Swift或者给我一个改变键盘高度的方法吗?

这是包含以下代码的网页: https://developer.apple.com/library/prerelease/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];

3 个答案:

答案 0 :(得分:4)

我添加了提供给viewDidAppear方法的代码,键盘自身调整了大小。

这是有效的代码。

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    let expandedHeight:CGFloat = 500
    let heightConstraint = NSLayoutConstraint(item:self.view,
        attribute: .Height,
        relatedBy: .Equal,
        toItem: nil,
        attribute: .NotAnAttribute,
        multiplier: 0.0,
        constant: expandedHeight)
    self.view.addConstraint(heightConstraint)
}

答案 1 :(得分:1)

let heightConstraint = NSLayoutConstraint(item: view, 
                                     attribute: .Height, 
                                     relatedBy: .Equal, 
                                        toItem: nil, 
                                     attribute: .NotAnAttribute, 
                                    multiplier: 0.0, 
                                      constant: expandedHeight)

答案 2 :(得分:0)

完全,

let expandedHeight:CGFloat = 500
        let heightConstraint = NSLayoutConstraint(item:self.view,
            attribute: .Height,
            relatedBy: .Equal,
            toItem: nil,
            attribute: .NotAnAttribute,
            multiplier: 0.0,
            constant: expandedHeight)
            self.view.addConstraint(heightConstraint)