You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从键盘扩展中获取安全区域底部内边距(home indicator区域)的高度

针对键盘扩展获取底部home indicator对应安全区高度的解决方案:

方案1:通过当前view所属window获取(推荐)

该方法完全符合扩展沙箱权限要求,不需要访问全局应用对象,适配横竖屏和所有机型,需要在view布局完成的回调中执行(比如viewWillLayoutSubviews、viewDidAppear,不要在viewDidLoad阶段调用,此时view还未挂载到window上,取值为0):

if let window = view.window {
    let bottomSafeHeight = window.safeAreaInsets.bottom
    // 此处获取的bottomSafeHeight就是键盘下方home indicator区域的高度
}

方案2:硬编码机型适配(备选)

如果特殊iOS版本下方案1生效异常,可以通过屏幕尺寸判断设备类型返回对应高度:

let bottomSafeHeight: CGFloat
// 竖屏判断逻辑
switch UIScreen.main.bounds.height {
case 812, 844, 852, 926, 932: // 所有带home indicator的iPhone竖屏高度
    bottomSafeHeight = 34
case 1024, 1112, 1180, 1194, 1366: // iPad类机型
    bottomSafeHeight = 20
default: // 带实体home键的旧机型
    bottomSafeHeight = 0
}

注意:该方案需要在苹果发布新机型时同步更新适配规则,优先级低于方案1。

内容的提问来源于stack exchange,提问作者Kqtr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 18:27:01