在android或xamarin droid中有一种方法TypedValue.applyDimension
到Converts an unpacked complex data value holding a dimension to its final floating point value。
在xamarin ios中是否有类似的功能?或做出类似事情的最佳方法
答案 0 :(得分:0)
据我所知,iOS上开箱即用的功能并不存在。但是,如果你看一下该方法的实际Java实现,你会发现它非常简单:
public static float applyDimension(int unit, float value,
DisplayMetrics metrics)
{
switch (unit) {
case COMPLEX_UNIT_PX:
return value;
case COMPLEX_UNIT_DIP:
return value * metrics.density;
case COMPLEX_UNIT_SP:
return value * metrics.scaledDensity;
case COMPLEX_UNIT_PT:
return value * metrics.xdpi * (1.0f/72);
case COMPLEX_UNIT_IN:
return value * metrics.xdpi;
case COMPLEX_UNIT_MM:
return value * metrics.xdpi * (1.0f/25.4f);
}
return 0;
}
从DisplayMetrics类获得的值应该主要在iOS上的UIScreen.MainScreen中提供。此外,您可能希望将单元定义为枚举。这应该是实现自己计算的一个很好的起点。