LabelCustomRenderer 中不可更改的字体大小

Unchangeable font size in LabelCustomRenderer

我为标签创建了自定义渲染器以显示 html 格式的文本。

问题在于,与 Android 不同,IOS 中的文本太小,我找不到更改它的方法。

我的代码

IOS

[assembly:ExportRenderer(typeof(HtmlFormattedLabel), typeof(HtmlFormattedLabelRenderer))]
namespace YmoApp.iOS
{
    public class HtmlFormattedLabelRenderer : LabelRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
        {
            base.OnElementChanged(e);

            var view = (HtmlFormattedLabel)Element;

            if (view == null) return;

            var attr = new NSAttributedStringDocumentAttributes();
            var nsError = new NSError();
            attr.DocumentType = NSDocumentType.HTML;

            var myHtmlData = NSData.FromString(view.Text, NSStringEncoding.UTF8);

            Control.AttributedText = new NSAttributedString(myHtmlData, attr, ref nsError);

        }
    }
}

Android

[assembly:ExportRenderer(typeof(HtmlFormattedLabel), typeof(HtmlFormattedLabelRenderer))]
namespace YmoApp.Droid
{
    public class HtmlFormattedLabelRenderer : LabelRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
        {
            base.OnElementChanged(e);

            var view = (HtmlFormattedLabel)Element;
            if (view == null) return;

            Control.SetText(Html.FromHtml(view.Text.ToString()), TextView.BufferType.Spannable);
        }
    }
}

PCL

var descriptionLabel = new HtmlFormattedLabel()
{
    Text = "<http><body style='font-size; 20px'><p style='text-align: justify; font-family: Arial, Helvetica, sans-serif; font-size: 14px'>"
                + _imovel.Anuncio.Descricao + "</p></body></http>",
    Margin = new Thickness(20, 0)
};

descriptionLabel.FontSize = 14;

似乎没有任何效果。

我猜你的问题在于将格式化字体大小设置为像素高度。 iOS 非常重视像素值,14 像素的字体大小在视网膜显示器上呈现时最终会非常小。

尝试使用与分辨率无关的字体​​大小,你应该可以开始了。

这对我来说也很不对:

<body style='font-size; 20px'>

错误在<body style='font-size; 20px'>

; 应该替换为 :