【问题标题】:Convert FontSize necessary需要转换 FontSize
【发布时间】:2020-10-30 02:15:13
【问题描述】:

我有一个自定义 Xamarin.Forms.Label 并将 FontSize 设置为 18。正确理解,单位是 DiP(与设备无关的像素)。
在我的 ios 自定义渲染器中,这个自定义标签是 UILabelUIFont。这个 uifont 有一个PointSize,它的值也是 18。在我的自定义渲染器中,我调整了标签的大小,PointSize 可能会变成一个不同的值。例如 15 个。
现在我需要在我的共享项目中使用 UIFont.PointSize 的新值 (15)。
问题是:UIFont.PointSize 单元与 Label.FontSize 单元不同吗?所以我需要转换?在我的测试中,单位看起来是相同的,但我不确定。
谢谢

【问题讨论】:

  • iOS 使用积分。在视网膜设备中,1 点等于 4 个像素。在非视网膜设备中,1 个点等于 1 个像素。检查developer.apple.com/library/archive/documentation/2DDrawing/…
  • 谢谢。我知道,但我不明白为什么 Label.FontSize (DiP) 和 UIFont.PointSize (Points) 是相同的值。在我的示例中为 18。

标签: xamarin xamarin.forms


【解决方案1】:

是的,它们是不同的单位

点 - 1/72 英寸,基于屏幕的物理尺寸。

dp 或倾斜

与密度无关的像素 - 基于屏幕物理密度的抽象单位。这些单位与 160 dpi 屏幕相关,因此 1 dp 是 160 dpi 屏幕上的一个像素。 dp与像素的比例会随着屏幕密度而变化,但不一定成正比。注意:编译器同时接受“dip”和“dp”,但“dp”与“sp”更一致。

还有更多信息here

【讨论】:

    猜你喜欢
    • 2012-03-30
    • 2012-10-29
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 2019-07-17
    • 2013-06-11
    相关资源
    最近更新 更多