我正在为iphone和ipad开发一个自定义多语言键盘,我遇到了一个UI设备,在设备方向改变的情况下我无法保留正确的UI。
我的最终目标是在横向+纵向模式+ iPhone + iPad设备中实现更高的键盘高度(带有建议的默认ios键盘高度)。
但是只要我自动调整大小并运行(不是自动布局),我就无法为键盘高度添加约束(在Xib文件中禁用自动布局)。
如果我通过启用自动布局来添加约束,我会松开子视图的自动调整大小,以便他们根据设备屏幕自行调整它们。
我的基本问题是我不知道要走哪条路,所以我只能专注于那里。
以下是我用于以编程方式添加约束的代码。
- (void)updateViewConstraints {
[super updateViewConstraints];
CGFloat _expandedHeight = 273;
NSLayoutConstraint *_heightConstraint =
[NSLayoutConstraint constraintWithItem: self.view
attribute: NSLayoutAttributeHeight
relatedBy: NSLayoutRelationEqual
toItem: nil
attribute: NSLayoutAttributeWidth
multiplier: 0.0
constant: _expandedHeight];
[self.view addConstraint: _heightConstraint];
}
-(void)viewDidAppear:(BOOL)animated {
self.inputView = (UIInputView *)Keyboard;
[self updateViewConstraints];
}
-(void)viewWillAppear:(BOOL)animated{
NSLog(@"viewWillAppear");
}
-(void)viewWillLayoutSubviews{
NSLog(@"viewWillLayoutSubviews");
[self updateViewConstraints];
}
任何建议都会很棒! 在此先感谢。
答案 0 :(得分:0)
避免键盘扩展中出现约束冲突的最佳方法是:
[super viewDidLayoutSubviews]
。此外,通过这样做,键盘扩展启动速度将大大提高,因为自动布局计算的数量要少得多。