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

如何在KMP项目中实现iOS端的屏幕尺寸获取(已完成Android端实现)

如何在KMP项目中实现iOS端的屏幕尺寸获取(已完成Android端实现)

嗨,看来你已经把KMP项目里Android端的屏幕高度DP获取搞定了,iOS端其实也不难,咱们直接用UIKit提供的UIScreen API就能实现对应的功能。

你之前写的iOS代码没写完,我帮你补全完整的actual实现:

import platform.UIKit.UIScreen

actual object ScreenSize {
    actual val heightDp: Float
        get() {
            // nativeBounds 是屏幕的物理像素尺寸,scale 是像素密度
            // 物理高度除以密度就得到了和Android端对应的DP高度
            val nativeScreenHeight = UIScreen.main.nativeBounds.size.height
            val screenScale = UIScreen.main.scale
            return nativeScreenHeight / screenScale
        }
}

这里和你Android端的实现逻辑完全对齐:Android里用heightPixels / density把物理像素转成DP,iOS这边就用屏幕物理高度(nativeBounds.size.height)除以像素密度(scale),得到的就是统一标准的DP高度,不管设备是横屏还是竖屏,都会返回屏幕物理高度对应的DP值。

如果你的需求是获取应用当前窗口的可用高度(比如去掉状态栏、导航栏后的高度),那得额外处理应用窗口的信息,但考虑到你Android端用的是Resources.getSystem()获取屏幕总高度,上面的实现应该更贴合你的需求。

备注:内容来源于stack exchange,提问作者sepideh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:44:51