如何在ios自定义键盘上更改布局?

时间:2015-12-30 12:28:19

标签: ios objective-c custom-keyboard ios-extensions

我为ios设备实现自定义键盘。 我为英语qwerty构建了一个布局,并在加载视图时加载它

self.keyboard = [[[NSBundle mainBundle] loadNibNamed:@"Keyboard" owner:nil options:nil] objectAtIndex:0];
self.inputView = (UIInputView*)self.keyboard;

我需要添加一个选项来更改具有不同布局和高度大小的3x4键盘的布局。

如何在点击按钮后更改布局?

由于

这是我尝试的:

self.keyboardSmall = [[[NSBundle mainBundle] loadNibNamed:@"KeyboardSmall" owner:self options:nil] objectAtIndex:0];
    self.inputView = (UIInputView*)self.keyboardSmall;

    _heightConstraint = [NSLayoutConstraint constraintWithItem: self.view
                                                     attribute: NSLayoutAttributeHeight
                                                     relatedBy: NSLayoutRelationEqual
                                                        toItem: nil
                                                     attribute: NSLayoutAttributeNotAnAttribute
                                                    multiplier: 0.0
                                                      constant: 10.0];

    [self.inputView addConstraint: _heightConstraint];

但它加载了一个新视图(例如只有一行),具有预览视图的高度(3行),非常普遍。

1 个答案:

答案 0 :(得分:0)

从您的问题来看,您认为自定义键盘只是一个简单的UIView。

现在要更改该视图的高度,您需要在自动布局视图中有一个固定高度约束,现在需要在自定义UIView对象上设置高度约束IBOutlet。然后,只要您想要更改该视图的高度,您只需要更改高度constratint的IBoutlet的常量值。