iOS 26自定义UIInputViewController键盘顶部空白去除方法咨询
自定义UIInputViewController键盘顶部空白问题
问题描述
开发基于UIInputViewController的自定义键盘时,已将mainStack的顶部约束绑定到view.topAnchor,且移除了安全区域设置,但第一排按键上方仍存在空白,系统键盘无此问题。使用的约束代码如下:
NSLayoutConstraint.activate([ mainStack.topAnchor.constraint(equalTo: view.topAnchor), mainStack.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 4), mainStack.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -4), mainStack.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -4) ])
解决方案
直接针对UIInputViewController的默认布局特性调整即可:
重置额外安全区域内边距:UIInputViewController默认会给view添加顶部额外内边距,在
viewDidLoad或viewWillAppear中添加代码:self.additionalSafeAreaInsets = .zero检查StackView的布局设置:确认mainStack没有默认内边距或意外间距,添加:
mainStack.layoutMargins = .zero mainStack.isLayoutMarginsRelativeArrangement = false强制关闭安全区域内边距继承:将控制器view的
insetsLayoutMarginsFromSafeArea设为false:view.insetsLayoutMarginsFromSafeArea = false
另外,也可以排查是否有其他高优先级约束覆盖了当前顶部约束,或是storyboard中意外设置了view的顶部内边距。

内容的提问来源于stack exchange,提问作者saqlain jamil
相关产品推荐
相关产品推荐

