我有一个自定义的Xamarin.Forms.Label,并将FontSize设置为18。作为一个正确的理解,单位是DiP (设备无关像素)。
在我的ios自定义渲染器中,这个自定义标签是一个带有UIFont的UILabel。这个uifont有一个PointSize,它的值也是18。在我的自定义渲染器中,我调整了标签的大小,PointSize可能会变成一个不同的值。例如,15。
现在我需要在我的共享项目中使用UIFont.PointSize的新值(15)。
问题是:UIFont.PointSize单元与Label.FontSize单元是否不同?所以我需要转换?在我的测试中,单位看起来是一样的,但我不确定。
谢谢
发布于 2020-10-30 02:08:44
是的,它们是不同的单位
pt
点-基于屏幕物理尺寸的1/72英寸。
dp或dip
与
密度无关的像素-基于屏幕的物理密度的抽象单位。这些单位是相对于160 dpi屏幕的,因此一个dp在160 dpi屏幕上是一个像素。dp与像素的比率将随屏幕密度而变化,但不一定成正比。注意:编译器同时接受"dip“和"dp",尽管"dp”与"sp“更一致。
这里有更多信息here
https://stackoverflow.com/questions/64572494
复制相似问题