我在我的Xaml中使用自定义标签,它有一个自定义渲染器。这似乎在Android中运行良好,但在iOS中不行。
Repro:在iOS中运行该应用。点按主页转到主页。点按登录。模态登录页面将显示一个开关。切换(或不切换)并点按完成。返回主页,它在INavigationAware.OnNavigatedTo()中检查结果并显示一个对话框。但是,在iOS中,当我使用具有自定义渲染器的XfLabel时,它不会被调用。不使用自定义渲染器将导致正确的行为。
XF的ExportRenderer机制在iOS上以某种方式与Prism的DI混淆了吗?
Prism.Forms(6.2)
XF(2.3)
示例代码:https://github.com/hnabbasi/xamarin/tree/master/XFPrism/XFPrism
答案 0 :(得分:0)
对于有此问题的任何人。正如Brian Lagunas所指出的那样,这是我自定义渲染器的疏忽。我没有更新OnElementChanged()中的本机控件,而是更新了XF元素。
应该像这样更新本机控件
Control.TextColor = UIColor.Purple; // iOS
和
Control.SetTextColor(Android.Graphics.Color.Purple); // Android
而不是
Element.TextColor = Color.Purple;
这个故事的道德:加速造成浪费;)