自定义渲染器在 iOS + 库中不起作用

Custom renderer doesn't work in iOS + library

我不知道为什么我的 Xamarin.Forms 自定义渲染器在我将它放入库中并且仅在 iOS 上时不起作用,有人可以帮助我吗?

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

            if (Control == null) return;
            UpdateMaxLines();
            UpdateText();
        }

如果进入项目,它在 Android、UWP 和 iOS 上运行良好。

https://github.com/matteobortolazzo/HtmlLabelPlugin

添加一个什么都不做的Initialize静态方法到你的HtmlLabelRendererclass以确保你的渲染器类型被加载beforeForms

示例:

public static void Initialize()
{
}

用法:

在你的AppDelegate之前Forms.Init(),调用你的Initialize方法:

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    Plugin.HtmlLabel.iOS.HtmlLabelRenderer.Initialize();
    global::Xamarin.Forms.Forms.Init();

    LoadApplication(new App());

    return base.FinishedLaunching(app, options);
}