如何在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
相关产品推荐
相关产品推荐

