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

Xamarin/C#跨平台适配:如何根据iOS版本调整SkiaSharp尺寸参数

解决方案

你可以直接在代码中先判断当前iOS系统的版本号,再根据版本阈值调整size参数即可,不同开发框架的实现方式如下:


原生Xamarin.iOS / .NET for iOS 实现

直接调用系统UIDevice的版本校验API判断:

int size;
// 校验系统版本是否大于等于13.0
if (UIDevice.CurrentDevice.CheckSystemVersion(13, 0))
{
    size = Math.Min(180, 180);
}
else
{
    // iOS11及更低版本调整为适配尺寸,数值可根据实际显示效果修改
    size = Math.Min(120, 120);
}

你可以先运行看iOS11设备的实际显示效果,再微调调整后的尺寸数值


Xamarin.Forms / .NET MAUI 跨平台实现

用跨平台设备信息API做判断,兼容多平台逻辑:

int size;
if (DeviceInfo.Platform == DevicePlatform.iOS && DeviceInfo.Version >= new Version(13,0))
{
    size = Math.Min(180, 180);
}
else if (DeviceInfo.Platform == DevicePlatform.iOS)
{
    size = Math.Min(120, 120);
}
else
{
    // 其他平台保持原有逻辑即可
    size = Math.Min(180, 180);
}

如果想要从根源解决版本适配问题,可以额外检查下当前SkiaSharp的绘制逻辑是否绑定了设备渲染缩放系数SKCanvas.DeviceClipBounds.DeviceScaleX做单位转换,iOS11到iOS13之间系统对绘制单位的解析逻辑存在小的差异,未做DPI适配的硬编码像素值容易出现不同版本显示不一致的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:42:02